F1. 水母与彼岸花(简单版)
时间限制:3 秒
内存限制:1024 MB
这是该问题的简单版本。与另一个版本的区别在于,本版本的时间限制以及 n,q 的约束更低。只有解决了本题所有版本的选手才能进行 Hack。
水母有一个由 n 个集合构成的数组。初始时所有集合为空。
接下来水母会进行 q 次操作。每次操作包含 一个修改操作 和 一个查询操作。对于第 i 次操作(1≤i≤q):
首先进行一个修改操作,可能是以下三种之一:
- 插入操作:给定一个整数 r。将元素 i(即当前操作的编号)插入到第 1 个到第 r 个集合中。注意,插入的元素是操作编号 i,而不是集合的编号。
- 反转操作:给定一个整数 r。将第 1 到第 r 个集合的顺序反转。
- 删除操作:给定一个整数 x。从所有包含 x 的集合中删除元素 x。
然后进行一个查询操作:给定一个整数 p,输出第 p 个集合中的最小元素(如果第 p 个集合为空,则答案为 0)。
附加约束
水母只会在前一次查询操作被回答后,才给出下一次操作。也就是说,本题需要在线解决。具体输入格式参见下文。
输入格式
第一行包含两个整数 n,q(1≤n,q≤105)—— 集合个数与操作次数。
由于需要在线回答操作,操作会以编码形式给出。
接下来的 q 行中,第 i 行包含三个整数 a,b,c(1≤a≤3,1≤c≤n),表示第 i 次操作的编码形式。
-
a 表示修改操作的类型:
- a=1 表示插入操作
- a=2 表示反转操作
- a=3 表示删除操作
-
若 a=1,则保证 1≤b≤n,且 r 通过下式计算:
r=(b+ansi−1−1)modn+1
-
若 a=2,则保证 1≤b≤n,且 r 通过下式计算:
r=(b+ansi−1−1)modn+1
-
若 a=3,则保证 1≤b≤q,且 x 通过下式计算:
x=(b+ansi−1−1)modq+1
-
对于查询操作,p 通过下式计算:
p=(c+ansi−1−1)modn+1
其中 ansi(1≤i≤q)表示第 i 次操作中查询操作的答案。另外,我们规定 ans0=0。
输出格式
对于每次查询操作,输出对应的答案。
样例输入
5 10
1 2 2
2 3 1
1 5 3
2 2 5
1 5 2
2 4 4
3 2 2
3 1 2
3 10 5
3 2 4
样例输出
1
0
1
1
3
1
0
5
0
0
样例解释(解码后的操作序列)
初始时所有集合为空:[{},{},{},{},{}]
- a=1,r=2,p=2:插入操作,将元素 1 插入前两个集合 → [{1},{1},{},{},{}],第 2 个集合最小元素为 1。
- a=2,r=4,p=2:反转操作,反转前 4 个集合 → [{},{},{1},{1},{}],第 2 个集合为空 → 0。
- a=1,r=5,p=3:插入操作,将元素 3 插入所有集合 → [{3},{3},{1,3},{1,3},{3}],第 3 个集合最小元素为 1。
- a=2,r=3,p=1:反转操作,反转前 3 个集合 → [{1,3},{3},{3},{1,3},{3}],第 1 个集合最小元素为 1。
- a=1,r=1,p=3:插入操作,将元素 5 插入第 1 个集合 → [{1,3,5},{3},{3},{1,3},{3}],第 3 个集合最小元素为 3。
- a=2,r=2,p=2:反转操作,反转前 2 个集合 → [{3},{1,3,5},{3},{1,3},{3}],第 2 个集合最小元素为 1。
- a=3,x=3,p=3:删除操作,删除所有集合中的 3 → [{},{1,5},{},{1},{}],第 3 个集合为空 → 0。
- a=3,x=1,p=2:删除操作,删除所有集合中的 1 → [{},{5},{},{},{}],第 2 个集合最小元素为 5。
- a=3,x=5,p=5:删除操作,删除所有集合中的 5 → [{},{},{},{},{}],第 5 个集合为空 → 0。
- a=3,x=2,p=4:删除操作,删除所有集合中的 2 → [{},{},{},{},{}],第 4 个集合为空 → 0。
注意:虽然我们并未在任何集合中插入过 2,但第 10 次操作仍然删除 2,这说明删除操作并不要求待删除元素一定存在于某个集合中。另外,也可能出现多次删除同一元素的操作。