AT_past18_o.蟻の移動
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
有 N 只蚂蚁,编号为 1 到 N,它们位于一条数轴上,正方向向右。在初始状态下,第 i 只蚂蚁位于初始坐标 Xi,朝向由字符 Di 描述。具体来说,Di= R 表示向右,Di= L 表示向左。保证 X1,X2,…,XN 是两两不同的偶数。
当 Snuke 打响指后,蚂蚁根据以下规则开始移动:
- 每只蚂蚁以每秒 1 的速度朝自己面朝的方向前进。
- 每当两只蚂蚁到达同一坐标时,它们会同时调头并继续移动。此事件称为蚂蚁的碰撞。可以证明,三只或以上的蚂蚁绝不会在同一时刻到达同一坐标。
给定总共 Q 个询问,每个询问有以下两种类型之一。按顺序处理它们。
1 x d:在初始状态中添加一只初始坐标为 x,朝向为 d 的蚂蚁。这里保证 x 为偶数,且与任意已存在蚂蚁的初始坐标都不同。2 l r:若 Snuke 在时刻 0 打响指,设 t1,t2,… 为第 1 只蚂蚁与其它蚂蚁碰撞的时刻,按时间顺序排列。计算 tl+tl+1+⋯+tr 并输出。保证 l≤r,且第 1 只蚂蚁与其它蚂蚁至少会碰撞 r 次。
注意,第二类询问之间是相互独立的。也就是说,处理第二类询问不会实际改变蚂蚁的初始状态。
输入格式
输入按如下格式从标准输入给出:
N Q
X1 D1
X2 D2
⋮
XN DN
query1
query2
⋮
queryQ
其中,第 i 个 queryi 为如下两种格式之一:
1 x d
2 l r
输出格式
若有 T 个第二类询问,共需输出 T 行。对于第 i 行 (1≤i≤T),输出第 i 个此类询问的答案。
输入输出样例
输入#1
2 5 2 R 10 L 2 1 1 1 0 L 1 -2 R 2 1 2 2 2 2
输出#1
4 10 6
输入#2
10 10 0 R 16 L 94 L -96 R -24 L 52 R -10 L -38 L 50 R 98 L 1 -66 L 2 2 3 1 48 L 1 34 R 2 2 2 1 8 L 2 2 3 2 2 3 1 62 L 2 1 3
输出#2
151 56 108 108 112
说明/提示
样例说明 1
若 Snuke 在未处理任何询问时的初始状态下打响指,蚂蚁移动如下:
- 时刻 0,所有蚂蚁开始移动,二者分别朝右和朝左。
- 时刻 4(t1),第 1 只蚂蚁和第 2 只蚂蚁在坐标 6 处碰撞。此后两只蚂蚁分别朝左和朝右。
因此,第 1 个询问的答案为 t1=4。
若 Snuke 在处理完前三个询问后的初始状态下打响指,蚂蚁移动如下。新加入的蚂蚁,分别称为第 3 只和第 4 只蚂蚁。
- 时刻 0,所有蚂蚁开始移动,朝向分别为右、左、左、右。
- 时刻 1,第 3 只和第 4 只蚂蚁在坐标 −1 处相遇。此后四只蚂蚁朝向分别为右、左、右、左。
- 时刻 4(t1),第 1 只和第 2 只蚂蚁在坐标 6 处相遇。此后四只蚂蚁朝向分别为左、右、右、左。
- 时刻 6(t2),第 1 只和第 3 只蚂蚁在坐标 4 处相遇。此后四只蚂蚁朝向分别为右、右、左、左。
因此,第 4 个询问答案为 t1+t2=10,第 5 个询问答案为 t2=6。
数据范围
- N、Q 为整数。
- 1≤N,Q≤105
- Xi 为偶数。
- ∣Xi∣≤109
- Xi=Xj (i=j)
- Di 取值为
R或L。 - 对于每个第 1 类询问,
- x 为偶数。
- ∣x∣≤109
- 在处理该询问时,没有蚂蚁的初始坐标为 x。
- d 取值为
R或L。
- 对于每个第 2 类询问,
- l、r 为整数。
- 1≤l≤r≤M,其中 M 是当前状态下第 1 只蚂蚁与其它蚂蚁将发生碰撞的总次数。
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?