CF799G.Cut the pie

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Arkady reached the nn -th level in Township game, so Masha decided to bake a pie for him! Of course, the pie has a shape of convex nn -gon, i.e. a polygon with nn vertices.

Arkady decided to cut the pie in two equal in area parts by cutting it by a straight line, so that he can eat one of them and give the other to Masha. There is a difficulty because Arkady has already put a knife at some point of the pie, so he now has to cut the pie by a straight line passing trough this point.

Help Arkady: find a line that passes through the point Arkady has put a knife into and cuts the pie into two parts of equal area, or determine that it's impossible. Your program has to quickly answer many queries with the same pie, but different points in which Arkady puts a knife.

输入格式

The first line contains two integers nn and qq ( 3<=n<=1043<=n<=10^{4} , 1<=q<=1051<=q<=10^{5} ) — the number of vertices in the pie and the number of queries.

nn line follow describing the polygon vertices in clockwise order. The ii -th of these line contains two integers xix_{i} and yiy_{i} ( 106<=xi,yi<=106-10^{6}<=x_{i},y_{i}<=10^{6} ) — the coordinates of the ii -th vertex. It is guaranteed that the polygon is strictly convex, in particular, no three vertices line on the same line.

An empty line follows.

qq lines follow describing the query points. The ii -th of these lines contain two integers xix_{i} and yiy_{i} ( 106<=xi,yi<=106-10^{6}<=x_{i},y_{i}<=10^{6} ) — the coordinates of the point in which Arkady puts the knife in the ii -th query. In is guaranteed that in each query the given point is strictly inside the polygon, in particular, is not on its edges.

输出格式

For each query print single integer — the polar angle of the line that is the answer for the corresponding query, in radians. The angle should be in the segment [0;π][0;π] , the angles are measured from the direction of OXOX axis in counter-clockwise order. For example, the polar angle of the OYOY axis is . If there is no answer in that query, print -1.

If there are several answers, print any of them. Your answer is considered correct if the difference between the areas of the parts divided by the total area of the polygon doesn't exceed 10410^{-4} by absolute value. In other words, if aa and bb are the areas of the parts after the cut, then your answer is correct if and only of .

输入输出样例

  • 输入#1

    3 1
    0 0
    0 3
    3 0
    
    1 1
    

    输出#1

    2.67794504460098710000
    
  • 输入#2

    5 3
    6 5
    6 3
    5 0
    0 0
    0 5
    
    5 4
    3 3
    5 2
    

    输出#2

    0.60228734612690049000
    1.27933953226473580000
    2.85805511179015910000
    
首页