https://www.acmicpc.net/problem/18917
18917번: 수열과 쿼리 38
3번째 쿼리가 끝난 이후 배열의 상태는 [0, 3, 1, 4]이다. 6번째 쿼리가 끝난 이후 배열의 상태는 [0, 3, 1, 4, 1]이다. 10번째 쿼리가 끝난 이후 배열의 상태는 [0, 3, 1]이다.
www.acmicpc.net
누적 합을 써서 푸는 문제이다.
xor 특성상 자기 자신과 XOR 하면 0이 되기 때문에 2번 연산으로 삭제 시킬 때 한 번 더 XOR 해주면 된다.
#include <bits/stdc++.h>
#define l long long
#define INF 2e9
#define p pair<int,int>
#define vc vector<l>
using namespace std;
int main(){
ios_base::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);
l m,a,x,sum = 0,XORSum = 0;
cin >> m;
for(int i=0;i<m;i++){
cin >> a;
if(a == 1){
cin >> x;
sum += x;
XORSum ^= x;
}
else if(a == 2){
cin >> x;
sum -= x;
XORSum ^= x;
}
else if(a == 3) cout << sum << "\n";
else if(a == 4) cout << XORSum << "\n";
}
}
'baekjoon' 카테고리의 다른 글
14428번 수열과 쿼리 16 (0) | 2022.03.24 |
---|---|
14427번 수열과 쿼리 15 (0) | 2022.03.24 |
18436번 수열과 쿼리 37 (0) | 2022.03.23 |
5676번 음주 코딩 (0) | 2022.03.22 |
2268번 수들의 합 7 (0) | 2022.03.22 |