CSPSMK06D. 开拓之箱

提交3 通过2
通过率66.7%
文件IO启用
输入文件chest.in
输出文件chest.out
时间限制1000ms
内存限制512MiB
    ID: 14546 传统题 文件IO 输入文件:chest.in 输出文件:chest.out 1000ms 512MiB 尝试: 3 已通过: 2 难度: 提高+/省选- 上传者: 标签>C++CSP-S考前模拟

题目描述

题目描述

列车组要开宝箱了!公平起见,他们制定了一些规则。

有 nn 个宝箱宝箱排布在一个平面直角坐标系上,将坐标系分为 n×nn\times n 的网格,每个网格的边长都是一个单位长度,第 ii 个宝箱位于网格中 (xi,yi)(x_i,y_i) 处。

mm 个无名客们按顺序到达了这个地方。第 ii 个到达的人宣布一个坐标 (xi′,yi′)(x_i',y_i'),接着从该位置开始,向左向下划线,直到碰到坐标轴或之前来的无名客画的线。他获得的宝箱个数就是他画的线与其他之前来的人画的线和坐标轴形成的封闭图形内的宝箱。

求出每个人获得的宝箱数量。

本题坐标如图:

坐标

其中网格内表示宝箱,坐标轴上表示无名客选择的坐标。

输入格式

第一行一个正整数 nn,表示宝箱个数。

第 22 到第 n+1n+1 行,每行两个正整数 xi,yix_i,y_i 表示宝箱的坐标。

第 n+2n+2 行一个正整数 mm,表示无名客个数。

之后 mm 行,每行两个正整数 xi′,yi′x_i',y_i',按到达顺序给出无名客宣布的位置。

输出格式

共 mm 行,第 ii 行表示第 ii 个到达的无名客获得的宝箱个数。

输入样例

7
1 1
4 2
6 2
5 3
2 5
4 7
7 5
4
4 4
8 2
9 6
6 5

输出样例

2
1
3
2

说明提示

本题共 2020 个测试点,各测试点限制如下:

输入样例 #2

1
768729278 185211921
1
3674432 4874308

输出样例 #2

0

输入样例 #3

3
708039233 861179294
714842639 314332648
580149687 862241008
3
5045676 6653672
4329404 9420234
42254 5897793

输出样例 #3

0
0
0

数据范围

对于全部的数据有,$1\le n,m\le 3\times 10^5,1\le x_i,y_i,x_i',y_i'\le 10^9$。保证 (xi,yi)(x_i,y_i) 两两不同,xi′x_i' 两两不同,yi′y_i' 两两不同。

测试点编号 n≤n\le m≤m\le 特殊性质
1∼41\sim 4 30003000 −-
5∼85\sim 8 3×1053\times 10^5 A\rm A
9∼129\sim 12 B\rm B
13∼2013\sim 20 −-

A\rm A:保证 ∀xi′<xj′\forall x_i' < x_j',都有 yi′<yj′y_i' < y_j',即宣布的坐标一定是包含关系。

B\rm B:yi≤20y_i\le 20。