#P1148. [数据结构]简单题[Cqoi2006]

[数据结构]简单题[Cqoi2006]

Description

有一个n个元素的数组,每个元素初始均为0。有m条指令,要么让其中一段连续序列数字反转——0变1,1变0(操作1),要么询问某个元素的值(操作2)。例如当n=20时,10条指令如下: (图中的o表示变化的0,图中的l变化的1)

操作           回答              操作后的数组
1 1 10        N/A           1111111111000000000  
2 6            1            11111l1111000000000
2 12           0            11111111110o0000000
1 5 12        N/A           1111000000110000000
2 6            0            11110o0000110000000
2 15           0            1111000000110o00000
1 6 16        N/A           1111011111001111000
1 11 17       N/A           1111011111100001000
2 12           1            1111011111l00001000
2 6            1            11110l1111100001000

(具体图示见https://blog.csdn.net/Bill_Yang_2016/article/details/54882485)

Input Format

第一行包含两个整数n,m,表示数组的长度和指令的条数,以下m行,每行的第一个数t表示操作的种类。若t=1,则接下来有两个数L, R (L<=R),表示区间[L, R]的每个数均反转;若t=2,则接下来只有一个数I,表示询问的下标。

Output Format

每个操作2输出一行(非0即1),表示每次操作2的回答

Sample

样例输入

20 10 
1 1 10 
2 6 
2 12 
1 5 12 
2 6 
2 15 
1 6 16 
1 11 17 
2 12 
2 6

样例输出

1 
0 
0 
0 
1 
1

Hint

50%的数据满足:1<=n<=1,000,1<=m<=10,000 100%的数据满足:1<=n<=100,000,1<=m<=500,000