#HK5158. 「ROIR 2017 Day 2」大型线性对撞机

「ROIR 2017 Day 2」大型线性对撞机

题目描述

译自 ROIR 2017 Day2 T2. Большой линейный коллайдер

一组科学家在国际科学实验室工作,研究大型线性对撞机(BLC)实验装置中基本粒子的行为。BLC 装置是一条直线,其上某些点放置了可以沿直线移动的粒子。

在一次实验中,BLC 中放置了 nn 个粒子,每个粒子要么是带负电的电子 e−e^{-},要么是带正电的正电子 e+e^{+}。实验中,第 ii 个粒子初始放置在坐标为 xix_i 的点上。实验开始后,由于 BLC 的作用,粒子将开始沿直线向不同方向移动:e−e^{-} 粒子向坐标减小的方向移动,e+e^{+} 粒子向坐标增大的方向移动。所有粒子的速度绝对值相同,均为 11。

在移动过程中,如果 e−e^{-} 和 e+e^{+} 粒子到达同一点,它们会相互作用并同时消失,且不会对其他粒子的后续行为产生影响。

科学家选择了 mm 个不同的时间点 t1,t2,…,tmt_1, t_2, \ldots, t_m,对于每个时间点,他们希望知道在该时间点之后 BLC 中剩余的粒子数量。时间从 00 时刻开始计算,即粒子开始移动的时刻。在时间点 tjt_j 因相互作用而消失的粒子不应计入该时间点的粒子数量。

你的任务是编写一个程序,根据粒子初始位置和类型描述,以及给定的时间点,确定每个时间点之后 BLC 中剩余的粒子数量。

输入格式

输入文件的第一行包含一个整数 nn (1≤n≤200000)(1 \leq n \leq 200000),表示粒子数量。接下来的 nn 行描述粒子,每行包含两个整数 xix_i 和 viv_i(−109≤x1<x2<…<xn≤109-10^{9} \leq x_1 < x_2 < \ldots < x_n \leq 10^{9},viv_i 为 −1-1 或 11),分别表示第 ii 个粒子的坐标和类型。e−e^{-} 粒子由 vi=−1v_i = -1 表示,e+e^{+} 粒子由 vi=1v_i = 1 表示。

下一行包含一个整数 mm (1≤m≤200000)(1 \leq m \leq 200000),表示科学家选择的时间点数量。最后一行包含 mm 个整数 t1,t2,…,tmt_1, t_2, \ldots, t_m (0≤t1<t2<…<tm≤109)(0 \leq t_1 < t_2 < \ldots < t_m \leq 10^{9})。

输出格式

对于输入文件中的每个时间点,输出一个数字,表示该时间点之后 BLC 中剩余的粒子数量。

4
-1 1
0 -1
1 1
5 -1
4
0 1 2 3

4
2
0
0

在给出的样例中,初始时刻 BLC 中有 44 个粒子:坐标为 −1-1 的 e+e^{+} 粒子,坐标为 00 的 e−e^{-} 粒子,坐标为 11 的 e+e^{+} 粒子,以及坐标为 55 的 e−e^{-} 粒子。

在时间 0.50.5 时刻,第一个 e+e^{+} 粒子和第一个 e−e^{-} 粒子在坐标为 −0.5-0.5 的点碰撞并消失。在时间 11 时刻,剩余的两个粒子分别位于坐标 22 和 44。在时间 22 时刻,它们在坐标 33 处碰撞并消失。此后 BLC 中不再有粒子。

数据范围与提示

详细子任务附加限制及分值如下表所示:

子任务 分值 nn 的限制 xix_i 的限制 mm 的限制 tit_i 的限制 子任务依赖
11 3535 1≤n≤1001 \leq n \leq 100 −100≤xi≤100-100 \leq x_i \leq 100 m=1m = 1 0≤t1≤1000 \leq t_1 \leq 100
22 1212 −109≤xi≤109-10^{9} \leq x_i \leq 10^{9} 0≤t1≤1090 \leq t_1 \leq 10^{9} 11
33 1212 1≤n≤2000001 \leq n \leq 200000 0≤ti≤1090 \leq t_i \leq 10^{9} 1,21, 2
44 4141 1≤m≤2000001 \leq m \leq 200000 1,2,31, 2, 3