[NOI2017]分身术
题号:NC20804
时间限制:C/C++/Rust/Pascal 3秒,其他语言6秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

“”分!身!术!” —— 小 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) mod n] + 1

特别的,在第一个时刻,我们认为上一个时刻中,S = −1 ,即:第一个时刻消失
的分身 p1, p2, . . . , pk 的编号为:
pi = [(−1 + ci) mod n] + 1

输出描述:

按给出时刻的顺序依次输出 m 行,每行一个整数,表示该时刻剩余分身所占领区
域面积的两. 倍. 。
示例1

输入

复制
6 2
-1 0
-1 -1
0 -1
1 0
0 1
0 0
3 1 3 6
2 0 1

输出

复制
3
2

说明

备注: