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

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

题目背景

翻译自 ROIR 2017 D2T2

题目描述

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

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

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

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

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

输入格式

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

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

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

最后一行包含 mm 个整数 t1,t2,,tmt_1, t_2, \dots, t_m,表示科学家选择观测的时间点(0t1<t2<<tm1090 \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,一个 ee^- 粒子在坐标 00,一个 e+e^+ 粒子在坐标 11,一个 ee^- 粒子在坐标 55

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

数据范围

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