문제 링크: https://www.acmicpc.net/problem/18917

 

합이랑 xor한 값을 저장해두는 변수를 만들어서 풀면 됩니다

int 범위 넘어가기 때문에 long long을 써야 합니다.

#include <bits/stdc++.h>
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;
}
반응형