loj#P4801. 「RMI 2023」Pinball

「RMI 2023」Pinball

题目描述

题目译自 Romanian Master of Informatics 2023 Day1 T3 「Pinball

—— 大家稍微冷静一下……

想象一个球,它静静地躺在 XX 轴上,初始位置是坐标 00。与此同时,XX 轴上分布着 NN 组墙壁。每组墙壁可以用一个三元组 (dir,len,freq)(dir, len, freq) 来描述:

  • dirdir 表示墙壁的摆放方向,可以是 L\texttt{L}(向左)或 R\texttt{R}(向右)。
  • 如果 dir=Ldir=\texttt{L},那么这组墙壁会出现在位置 $−len, −2 \cdot len, −3 \cdot len,\ldots −freq \cdot len$。
  • 如果 dir=Rdir=\texttt{R},那么这组墙壁会出现在位置 $len, 2 \cdot len, 3 \cdot len,\ldots , freq \cdot len$。

需要注意的是,由于这些信息的特性,同一个坐标上可能会同时存在多堵墙。

在时间 T=0T=0 时,球开始以每秒一单位的速度向右移动。每当球撞上一堵墙,那堵墙就会立刻被撞毁,同时球会掉头反向移动。如果某个坐标有多堵墙,球撞击时只会毁掉其中一堵。

现在给你 QQ 个问题。每个问题会给出一个整数 TT,请你算出经过 TT 秒后,球所在的坐标是多少。

输入格式

第一行包含两个整数 NNQQ,中间用一个空格隔开。

接下来的 NN 行,每行有三个用空格分隔的整数 dir,len,freqdir, len, freq,描述一组墙壁的摆放方式。

再接下来的 QQ 行,每行有一个整数 TT,表示一个询问。

输出格式

输出 QQ 行,第 ii 行给出第 ii 个询问的答案。

3 12
R 3 2
R 6 1
L 3 2
0
1
2
3
4
5
6
7
17
18
19
200

0
1
2
3
2
1
0
-1
5
6
5
-152

数据范围与提示

对于所有输入数据,满足:

  • 1N,Q250 0001 \leq N, Q \leq 250\ 000
  • 1T10121 \leq T \leq 10^{12}
  • dir{L,R}dir \in \{\texttt{L}, \texttt{R}\}
  • 1len,freq10121 \leq len, freq \leq 10^{12}

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

子任务 分值 附加限制
11 1313 N,Q1 000N, Q \leq 1\ 000
22 88 Q,T1 000Q, T \leq 1\ 000
33 1616 1len101 \leq len \leq 10
44 1010 T106T \leq 10^6
55 1111 lenfreq106len \cdot freq \leq 10^6
66 99 SS 为输入中所有 freqfreq 的总和,S106S \leq 10^6
77 3333 无附加限制