小苯有一个长度为
的数组
,他希望在
上处理一些操作,具体如下:
请你帮他处理所有的操作吧。
输入包含行。
第一行两个正整数,表示数组的长度,和操作的个数。
第二行个正整数
,表示数组的元素值。
接下来行,每行一个操作,格式为:
或
![]()
。
如果
,则表示修改操作,如果
,则表示将所有值奇数的数字都加上
,否则
表示将所有值为偶数的数字都加上
。
如果
,则表示查询操作,查询数组
中所有数字的总和。
输出包含若干行。
对于每个的询问,做出对应的回答。
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); } } } }