Điểm:
600
Thời gian:
1.0s
Bộ nhớ:
256M
Input:
bàn phím
Output:
màn hình
Bạn được cho một mảng \(a\) có \(n\) phần tử. Bạn phải xử lí \(Q\) truy vấn, mỗi truy vấn thuộc một trong hai dạng:
1 x
: Tăng tất cả các phần tử trong mảng đang có giá trị chẵn \(x\) đơn vị.2 x
: Tăng tất cả các phần tử trong mảng đang có giá trị lẻ \(x\) đơn vị.
Chú ý rằng, trong các truy vấn, chúng ta xét giá trị của \(a_{i}\), chứ không xét chỉ số.
Yêu cầu: Đưa ra tổng của mảng \(a\) sau mỗi truy vấn?
Input
- Dòng thứ nhất chứa hai số nguyên dương \(n, Q\) (\(n, Q \le 10^5\)).
- Dòng thứ hai chứa \(n\) số nguyên dương \(a_{1}, a_{2},..., a_{n}\) (\(a_{i} \le 10^6\)).
- \(Q\) dòng tiếp theo, mỗi dòng chứa một truy vấn như mô tả ở trên (\(1 \le x \le 10^4\)).
Output
- Đưa ra \(Q\) số nguyên trên \(Q\) dòng, dòng thứ \(i\) chứa một số nguyên duy nhất là tổng của mảng sau khi thực hiện truy vấn thứ \(i\).
Scoring
- Subtask \(1\) (\(30\%\) số điểm): \(Q \le 10\).
- Subtask \(2\) (\(70\%\) số điểm): không có ràng buộc gì thêm.
Test 1
Input
1 2
2
1 1
2 1
Output
3
4
Note
Ở test trên, ban đầu mảng \(a\) có \(1\) giá trị chẵn có giá trị là \({2}\).
- Sau khi thực hiện truy vấn thứ \(1\), mảng \(a\) trở thành \({3}\). Khi đó, tổng của mảng \(a\) có giá trị là \(3\).
- Sau khi thực hiện truy vấn thứ \(2\), mảng \(a\) trở thành \({4}\). Khi đó, tổng của mảng \(a\) có giá trị là \(4\).
Bình luận
Mn người có thể tham khảo code của mình :
include <bits/stdc++.h>
using namespace std;
define ll long long
ll sum=0,demchan,demle;
int main() {
ios_base::sync_with_stdio(0);
cin.tie();cout.tie();
int n,q,x;
cin>>n>>q;
for(int i=1;i<=n;i++) {
cin>>x;
if(x%2==0) {
demchan++;
}
else {
demle++;
}
sum+=x;
}
while(q--) {
int a,b;
cin>>a>>b;
if(a==1) {
sum=sum+(1lldemchanb);
cout<<sum<<endl;
if(b%2==1) {
demle=demle+demchan;
demchan=0;
}
}
else if(a==2) {
sum=sum+(1lldemleb);
cout<<sum<<endl;
if(b%2==1) {
demchan=demle+demchan;
demle=0;
}
}
Bình luận bị ẩn vì nhiều phản hồi tiêu cực. Nhấp vào đây để mở.