A10898 | Cut the pie
时间限制1s
内存限制256MB
通过 / 提交0/0
题目描述
Arkady reached the $n$ -th level in Township game, so Masha decided to bake a pie for him! Of course, the pie has a shape of convex $n$ -gon, i.e. a polygon with $n$ 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.
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 $n$ and $q$ ( $3<=n<=10^{4}$ , $1<=q<=10^{5}$ ) — the number of vertices in the pie and the number of queries.
$n$ line follow describing the polygon vertices in clockwise order. The $i$ -th of these line contains two integers $x_{i}$ and $y_{i}$ ( $-10^{6}<=x_{i},y_{i}<=10^{6}$ ) — the coordinates of the $i$ -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.
$q$ lines follow describing the query points. The $i$ -th of these lines contain two integers $x_{i}$ and $y_{i}$ ( $-10^{6}<=x_{i},y_{i}<=10^{6}$ ) — the coordinates of the point in which Arkady puts the knife in the $i$ -th query. In is guaranteed that in each query the given point is strictly inside the polygon, in particular, is not on its edges.
$n$ line follow describing the polygon vertices in clockwise order. The $i$ -th of these line contains two integers $x_{i}$ and $y_{i}$ ( $-10^{6}<=x_{i},y_{i}<=10^{6}$ ) — the coordinates of the $i$ -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.
$q$ lines follow describing the query points. The $i$ -th of these lines contain two integers $x_{i}$ and $y_{i}$ ( $-10^{6}<=x_{i},y_{i}<=10^{6}$ ) — the coordinates of the point in which Arkady puts the knife in the $i$ -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;π]$ , the angles are measured from the direction of $OX$ axis in counter-clockwise order. For example, the polar angle of the $OY$ 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 $10^{-4}$ by absolute value. In other words, if $a$ and $b$ are the areas of the parts after the cut, then your answer is correct if and only of .
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 $10^{-4}$ by absolute value. In other words, if $a$ and $b$ 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
暂无题解
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?
提交通过
评测结果:Accepted