#P16953. [sgu373] Carlsson vs. Winnie-the-Pooh

[sgu373] Carlsson vs. Winnie-the-Pooh

题目描述

Carlsson 和 Winnie-the-Pooh 正在吃一张圆形披萨。披萨半径为 RR,圆心位于 (0,0)(0,0)

他们用 NN 条直线把披萨切成若干块。第 ii 条直线由三个整数 ai,bi,cia_i,b_i,c_i 给出,对应方程

aix+biy+ci=0a_ix+b_iy+c_i=0

保证每条直线都与披萨边界圆恰好有两个交点,因此确实会切开披萨。

两个人吃披萨的规则如下:

  • 每个人拿到一块披萨后,会一直吃完这一整块,然后才能再拿下一块;
  • 两个人吃披萨的速度相同,因此吃完一块所需时间与这块披萨的面积成正比;
  • 当某个人吃完手中的披萨后,如果还有剩余的块,他会立即选择一块继续吃;
  • 如果两个人在同一时刻都要选择下一块,则 Carlsson 优先选择

两个人都采用最优策略,希望自己最终吃到的披萨总面积尽可能大。

请计算在双方都最优的情况下,Carlsson 和 Winnie-the-Pooh 最终分别吃到多少面积的披萨。

输入格式

第一行包含两个整数 N,RN,R

接下来 NN 行,每行包含三个整数 a,b,ca,b,c,表示一条直线 ax+by+c=0ax+by+c=0

输出格式

输出两个实数,分别表示 Carlsson 和 Winnie-the-Pooh 最终吃到的披萨面积。

若输出与正确答案的绝对误差不超过 10410^{-4},则认为正确。

数据范围

  • 1N41\le N\le4
  • 1R1001\le R\le100
  • 1000a,b,c1000-1000\le a,b,c\le1000
  • 每条直线都与圆 x2+y2=R2x^2+y^2=R^2 有两个不同交点。

样例

1 100
1 0 0
15707.9632679490 15707.9632679490

说明

只有一条经过圆心的直线时,披萨被分成两个面积相等的半圆,因此两人最终各吃一半。