문제 해결 key_point
문제 해결 아이디어
- 사전에 학습했던 비트 마스크 활용 사용
- 더한 값과 xor한 값을 저장할 변수 정의 (ll sum, ll xor_val)
- swich case를 사용한 경우 처리(if else 사용해도 무관할듯)
- while을 사용한 반복(for 사용해도 무관)
소스코드
#include <iostream>
#include <vector>
using namespace std;
typedef long long ll;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr), cout.tie(nullptr);
ll sum = 0;
ll xor_val = 0;
int m;
cin >> m;
while (m--) {
int q;
cin >> q;
int x;
switch (q) {
case 1:
cin >> x;
sum += x;
xor_val ^= x;
break;
case 2:
cin >> x;
sum -= x;
xor_val ^= x;
break;
case 3:
cout << sum << '\\n';
break;
case 4:
cout << xor_val << '\\n';
break;
}
}
return 0;
}