配点 : 600 点
問題文
xy 平面上に N 個の多角形があります。
これらの多角形は、全ての辺が x 軸または y 軸に平行で、全ての角が 90 度または 270 度で、かつ単純です。
i 個目の多角形は Mi 個の頂点からなり、j 番目の頂点は (xi,j,yi,j) です。
多角形の辺は j 番目の頂点と j+1 番目の頂点を結んでできる線分です(ただし Mi+1 番目の頂点は 1 番目の頂点とします)。
多角形が単純とは
連続しないどの 2 辺も共通部分を持たない(すなわち交差も接触もしない)とき、その多角形を単純といいます。
$Q$ 個のクエリが与えられます。
$i = 1, 2, \dots, Q$ について、$i$ 個目のクエリは以下の通りです。
- N 個の多角形のうち、点 (Xi+0.5,Yi+0.5) を内部に含むものはいくつありますか?
制約
- 1≤N≤105
- 4≤Mi≤105
- Mi は偶数
- ∑iMi≤4×105
- 0≤xi,j,yi,j≤105
- j=k ならば (xi,j,yi,j)=(xi,k,yi,k)
- j=1,3,…Mi−1 について、xi,j=xi,j+1
- j=2,4,…Mi について、yi,j=yi,j+1 (ただし、yi,Mi+1=yi,1 とする)
- 与えられる多角形は単純
- 1≤Q≤105
- 0≤Xi,Yi<105
- 入力は全て整数
入力
入力は以下の形式で標準入力から与えられる。
N
M1
x1,1 y1,1 x1,2 y1,2 … x1,M1 y1,M1
M2
x2,1 y2,1 x2,2 y2,2 … x2,M2 y2,M2
⋮
MN
xN,1 yN,1 xN,2 yN,2 … xN,MN yN,MN
Q
X1 Y1
X2 Y2
⋮
XQ YQ
出力
Q 行出力せよ。
i 行目には、i 個目のクエリに対する答えを出力せよ。
3
4
1 2 1 4 3 4 3 2
4
2 5 2 3 5 3 5 5
4
5 6 5 5 3 5 3 6
3
1 4
2 3
4 5
0
2
1
異なる多角形同士は、交差したり接触したりする可能性があることに注意してください。
2
4
12 3 12 5 0 5 0 3
12
1 1 1 9 10 9 10 0 4 0 4 6 6 6 6 2 8 2 8 7 2 7 2 1
4
2 6
4 4
6 3
1 8
0
2
1
1
多角形は単純ですが、凸多角形とは限りません。