题目描述
给定整数序列 a1,…,an ,共 m 次操作;
每次操作给出 l,r,x ,首先进行修改,然后查询 a1,…,ax 中有多少种不同的值。
若 l≤r ,则进行的修改是将 al,…,ar 从小到大排序;否则进行的修改是将 ar,…,al 从大到小排序。
输入格式
第一行两个整数 n,m ;
第二行 n 个整数 a1,…,an ;
接下来 m 行,每行三个整数 l⊕c,r⊕c,x⊕c ,依次表示每次操作,其中 ⊕ 是按位异或,c 是上次操作的查询的答案(特别地,对于第一次操作,c=0)。
输出格式
共 m 行,每行一个整数,依次表示每次操作的查询的答案。
9 7
2 2 8 8 2 8 2 1 3
2 2 2
3 7 6
6 7 1
9 6 7
10 11 10
7 0 5
5 1 7
1
2
1
2
3
2
2
提示
Idea:ccz181078,Solution:ccz181078,Code:ccz181078,Data:ccz181078
对于 20% 的数据,满足 n,m≤103。
对于另外 20% 的数据,满足 ai≤10。
对于另外 20% 的数据,满足 ai≤100。
对于另外 20% 的数据,满足 n,m≤105。
对于 100% 的数据,满足 1≤ai≤n,1≤l,r,x≤n,1≤n,m≤106。