题目描述
对一个长度为N的序列{an}(ai∈[0,216−1]),进行如下两种,共计M个操作:
-
A x
(x≥0):ai=ai+xmod216
-
Q i
:询问$Card\{k\mid(a_k\;\&\;2^i)>0,1\le k\le N,k\in\mathbb{Z}\}$的结果
其中&运算符为相当于C/C++中的&
或Pascal中的and
给定初始序列和操作序列,请你模拟操作过程,并计算所有Q操作的相应的结果的和。
输入格式
输入文件的第一行包含两个以空格分隔的整数,分别代表N,M
接下来的N行每行包含一个整数,代表初始序列
接下来的M行,每行描述一个操作,格式如题目中所述
输出格式
输出文件包含一个整数,表示所有Q操作的结果的和
3 5
1
2
4
Q 1
Q 2
A 1
Q 1
Q 2
5
提示
初始序列为124
Q 1
:仅a2=2满足(ak&2i)>0,该Q操作的结果为1
Q 2
:仅a3=4满足(ak&2i)>0,该Q操作的结果为1
A 1
:原序列变为235
Q 1
:仅a1=2,a2=3满足(ak&2i)>0,该Q操作的结果为2
Q 2
:仅a3=5满足(ak&2i)>0,该Q操作的结果为1
1+1+2+1=5,所以最终结果为5
30%的数据满足1≤N≤100,1≤M≤1000
100%的数据满足1≤N,M≤105