题目描述
“分!身!术!” —— 小 P
平面上有 n 个小 P 的分身。定义一组分身占领的区域为覆盖这组分身的最小凸多边形。小 P 能力有限,每一时刻都会有若干分身消失。但在下一时刻之前,小 P 会使用分身术使得这些消失的分身重新出现在原来的位置。
小 P 想知道,每一时刻分身消失后,剩下的分身占领的区域面积是多少?
输入格式
输入第一行包含两个正整数 n,m,描述初始时分身的个数,和总时刻数。
接下来 n 行,第 i 行有两个整数 xi,yi ,描述第 i 个分身的位置。
接下来 m 行,每行的第一个整数 k 表示这一时刻有 k 个分身消失。接下来有 k 个非负整数 c1,c2,…,ck,用于生成消失的分身的编号。
生成方式如下:
设上一个时刻中,分身占领面积的两倍为 S。则该时刻消失的分身 p1,p2,…,pk 的编号为:pi=[(S+ci)modn]+1。
特别的,在第一个时刻,我们认为上一个时刻中,S=−1,即:第一个时刻消失的分身p1,p2,…,pk的编号为:pi=[(−1+ci)modn]+1。
输出格式
按给出时刻的顺序依次输出 m 行,每行一个整数,表示该时刻剩余分身所占领区域面积的两倍。
6 2
-1 0
-1 -1
0 -1
1 0
0 1
0 0
3 1 3 6
2 0 1
3
2
提示
样例解释
如下图所示:左图表示输入的 6 个分身的位置及它们占领的区域;中图表示第一个时刻的情形,消失的分身编号分别为 1,3,6,剩余 3 个点占领图中实线内部区域,占据面积的两倍为 3;右图表示第二个时刻的情形,消失的分身编号分别为
[(0+3)mod6]+1=4
[(1+3)mod6]+1=5
剩余的 4 个点占领图中实线内部区域。
对于所有数据,保证:
- ∣xi∣,∣yi∣≤108 ;
- 没有两个分身的坐标是完全相同的;
- k≤100 ;
- 所有时刻的 k 之和不超过 2×106 ;
- 0≤ci≤231−1 ;
- 初始时,所有的 n 个分身占据区域面积大于 0 ;
- 定义所有 n 个分身所占据区域的顶点集合为 S , ∣S∣≥3 。在任意时刻, S 中至少存在两个未消失的分身。
测试点编号 |
n≤ |
m≤ |
k |
1 |
10 |
≤n−3 |
2 |
103 |
3 |
4 |
5 |
105 |
=1 |
6 |
7 |
8 |
9 |
=2 |
10 |
11 |
≤3 |
12 |
≤5 |
13 |
≤9 |
14 |
≤12 |
15 |
≤20 |
16 |
≤100 |
17 |
18 |
19 |
20 |