题号:NC53237
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld
题目描述
JOI社为了扩大业务而开始了新社员招募。社员有N名候补者,编号从1到N,每名候补者有称为评价值的一个确定整数。评价值高于某一个值的候补者全部都将被聘用,他们还将分为几个组别。如果
)
同时被聘用且
)
全部被聘用时,a,b进入同一组。
你要处理M个查询,查询有以下两种:
- 评价值
以上的候补者全部聘用时的组数; - 将候补者
的评价值更新为
输入描述:
第一行两个整数N,M;
接下来N行第i行给出候补者评价值的初始值
;
接下来M行中,第j行有一个整数
:
时给出
,意义如上;
时给出
,意义如上。
输出描述:
每行一个整数表示分组个数。
示例1
输入
复制
5 4
8
6
3
5
4
1 5
2 4 1
1 5
1 3
说明
第一次查询时,候补者1,2,4被聘用,1,2一组,4为一组,输出2;
第二次查询将候补者4的评价值更新为1;
第三次查询时,候补者1,2为一组,输出1;
第四次查询时候补者1,2,3一组,5一组,输出2。
示例2
输入
复制
7 5
13
19
1
15
13
1
19
1 20
1 1
1 6
1 11
1 17
示例3
输入
复制
10 5
8
10
15
2
2
8
5
12
11
4
1 5
2 8 4
1 12
2 5 11
1 16
备注:
对于全部数据,

,并保证至少有一次查询

。
CC-BY-SA,感谢LOJ分享,译文来自 https://loj.ac/problem/2732