小苯有一个长度为
的数组
,他希望在
上处理一些操作,具体如下:
请你帮他处理所有的操作吧。
输入包含行。
第一行两个正整数,表示数组的长度,和操作的个数。
第二行个正整数
,表示数组的元素值。
接下来行,每行一个操作,格式为:
或
![]()
。
如果
,则表示修改操作,如果
,则表示将所有值奇数的数字都加上
,否则
表示将所有值为偶数的数字都加上
。
如果
,则表示查询操作,查询数组
中所有数字的总和。
输出包含若干行。
对于每个的询问,做出对应的回答。
3 4 1 2 3 1 1 2 2 1 2 1 2
10 11
一开始数组为。
执行完第一次修改操作(给所有奇数加上)后变成:
。
此时进行第一次查询,数组总和为:,因此输出
。
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt() , q = in.nextInt();
int [] arr = new int [n];
int ji = 0 ,ou = 0;
long sum = 0;
for(int i = 0 ; i < n ; i++) {
int num = in.nextInt();
arr[i] = num;
if(num % 2 == 0) ou++;
else ji++;
sum += num;
}
for(int i = 0; i < q ; i++){
int word = in.nextInt();
if(word == 1){
int x = in.nextInt();
int y = in.nextInt();
if(x == 1){
sum += 1L * y * ji;
if(y % 2 != 0) {
ou += ji;
ji = 0;
}
}else if(x == 2){
sum += 1L * y * ou;
if(y % 2 != 0){
ji += ou;
ou = 0;
}
}
}else if(word == 2){
System.out.println(sum);
}
}
}
}