#P11511. [ROIR 2017] 大型直线对撞机 (Day 2)

    ID: 12888 远端评测题 1000ms 256MiB 尝试: 0 已通过: 0 显示难度普及 上传者: 标签>2017Special JudgeROIR(俄罗斯)

[ROIR 2017] 大型直线对撞机 (Day 2)

背景

翻译自 ROIR 2017 D2T2。

题目描述

科学家在一个国际科学实验室里进行研究,研究的是粒子在大型直线对撞机(简称:BLC)实验装置中的行为。BLC 呈一条直线,粒子被放置在这条直线上的某些点上,粒子可以沿着这条直线移动。

在本次实验中,BLC 上放置了 nn 个粒子,每个粒子要么是带一个单位负电荷的电子(e−e^-),要么是带一个单位正电荷的正电子(e+e^+)。第 ii 个粒子最初被放置在坐标 xix_i 的位置。实验开始后,粒子会沿直线向不同的方向移动:e−e^- 沿负方向移动,而 e+e^+ 则沿正方向移动。所有粒子的速度绝对值相同,均为 11。

如果在移动过程中,e−e^- 和 e+e^+ 在某一位置碰撞,它们会相互作用并湮灭。它们的湮灭不会影响其他粒子的行为。

科学家们选择了 mm 个不同的时间点 t1,t2,…,tmt_1, t_2, \dots, t_m 对 BLC 中的粒子进行观测。对于每个时间点,他们希望知道,在每个时间点之后,BLC 还剩下多少个粒子。时间从 00 开始。恰好在观测的时间点湮灭的粒子不应被计入粒子总数。

你需要编写一个程序,根据粒子的初始位置和类型,以及给定的观测时间点,来计算每个时间点后 BLC 中剩余的粒子数。

输入格式

第一行包含一个整数 nn,表示粒子的数量(1≤n≤2000001 \leq n \leq 200000)。

接下来的 nn 行,每行包含两个整数 xix_i 和 viv_i,分别表示第 ii 个粒子的坐标和类型(−109≤x1<x2<⋯<xn≤109-10^9 \leq x_1 < x_2 < \dots < x_n \leq 10^9,其中 vi=−1v_i = -1 表示电子 e−e^-,vi=1v_i = 1 表示正电子 e+e^+)。

接下来一行包含一个整数 mm,表示观测时间点的数量(1≤m≤2000001 \leq m \leq 200000)。

最后一行包含 mm 个整数 t1,t2,…,tmt_1, t_2, \dots, t_m,表示科学家选择观测的时间点(0≤t1<t2<⋯<tm≤1090 \leq t_1 < t_2 < \dots < 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 中有 4 个粒子:一个 e+e^+ 粒子在坐标 −1-1,一个 e−e^- 粒子在坐标 00,一个 e+e^+ 粒子在坐标 11,一个 e−e^- 粒子在坐标 55。

  • 在时间 0.50.5 时,第一个 e+e^+ 粒子和第一个 e−e^- 粒子碰撞,在坐标 −0.5-0.5 处湮灭。
  • 在时间 11 时,剩余的两颗粒子在坐标 22 和 44。
  • 在时间 22 时,这两个粒子在坐标 33 处碰撞并湮灭。
  • 在时间 33 时,BLC 中没有剩余粒子。

数据范围

子任务 分值 1≤n≤1\le n\le ∣xi∣≤\vert x_i\vert\le 1≤m≤1\le m\le 0≤ti≤0\le t_i\le
11 3535 100100 100100 11 100100
22 1212 10910^9 10910^9
33 200000200000
44 4141 200000200000