#P12801. 咖啡的罪恶
咖啡的罪恶
咖啡的罪恶
Problem Description
Koyuki 通过出售梦境转移器赚到了一大笔钱,只可惜她在走廊里不慎撞到了拿着咖啡的 Noa,导致 Noa 手上的文件洒满了咖啡。更严重的是,这些文件是 Noa 特意为老师准备的。现在,她决定没收 Koyuki 的所得,并要求她完成下面的题目。 Noa 定义一个长度为 的非负整数序列 $a_\delta,a_{\delta+1},a_{\delta+2},\cdots,a_{\delta+\epsilon}$( 为非负整数)是一个 咖啡序列 当且仅当所有整数 ()均满足其在序列中的出现次数恰好为 。 她给定了一个长度为 的非负整数序列 ,并要求 Koyuki 完成 次操作。每次操作形如:
- 1 x p(操作 1):令 。
- 2 l r(操作 2):对于所有满足 的咖啡序列 ,计算它的长度(也就是 )的最大值。若不存在任何满足条件的咖啡序列,则最大值为 。 Koyuki 注意到身旁的你正在打程序设计竞赛,于是顺手将题目扔给了你。当你转过头时,只隐约看见她跑去的背影。Noa 向你道了歉,并保证假如你做出了这道题目,她就会带 Koyuki 亲自来道歉。
Input
本题包含多组测试数据。 来自 Noa 的温馨提示:本题输入输出量较大,对于使用 C++ 语言参加竞赛的选手,强烈建议使用关闭同步流的 cin 和 cout 完成输入输出。 首先在第一行输入一个整数 ()表示测试数据组数。 对于每一组测试数据,输入包含 行。 第一行包含两个整数 (),分别表示序列的长度和操作的次数。 第二行包含 个整数 ()表示序列的元素。 接下来 行,每行首先包含一个整数 ()表示操作的类型,接下来包含两个整数 或 表示一次操作。 保证在所有操作 1 中,,,。保证在所有操作 2 中,,。
Output
对于每一组测试数据,对于每一次操作 2,输出包含一行一个整数表示满足条件的咖啡序列的长度最大值。若不存在,则答案为 。
Sample Input
1
12 8
2 1 2 0 0 3 2 1 1 0 0 0
2 1 4
2 1 5
2 1 6
2 1 10
2 1 12
2 6 12
1 2 0
2 1 4
Sample Output
0
5
5
5
7
7
4
Hint
在样例的测试数据中,共有 次操作:
- 第 次操作的类型为操作 2,。答案为 。
- 第 次操作的类型为操作 2,。在 时,序列 是咖啡序列。答案均为 。
- 第 次操作的类型为操作 2,。在 时,序列 是咖啡序列。答案均为 。
- 第 次操作的类型为操作 1,。此时 。
- 第 次操作的类型为操作 2,。在 时,序列 是咖啡序列。答案为 。
Source
2025“钉耙编程”中国大学生算法设计暑期联赛(4)