显示原始代码
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <vector>
#include <string>
#include <math.h>
#include <cstring>
#include <algorithm>
using namespace std;
using std::vector;
vector<int> vec;
int sign_function(string a, string b) {
string s;
int max_len = max(a.size(), b.size());
if (a.size() < max_len) {
for (int i = 0; i < max_len - a.size(); i++) {
a.push_back('0');
}
}
if (b.size() < max_len) {
for (int i = 0; i < max_len - b.size(); i++) {
b.push_back('0');
}
}
for (int i = 0; i < a.size(); i++) {
if (a[i] == b[i])
s.push_back('0');
else
s.push_back('1');
}
reverse(s.begin(), s.end());
int num = 0;
for (int i = 0; i < s.size(); i++) {
num += (s[i] - '0') * int(pow(2, s.size() - i - 1));
}
return num;
}
string trans(int a) {
string s;
if (a != 0) {
while (a != 1) {
s.push_back(a % 2 + '0');
a = a / 2;
}
s.push_back('1');
} else {
s.push_back('0');
}
return s;
}
void work_function() {
int _final = 0;
for (int i = 0; i < vec.size(); i++) {
if (i == 0) {
_final = vec[i];
} else {
_final = sign_function(trans(_final), trans(vec[i]));
}
}
cout << _final << endl;
}
int main() {
int n;
cin >> n;
for (int i = 0; i < n; i++) {
int a, b;
cin >> a;
if (a == 1) {
for (int j = 0; j < vec.size(); j++) {
vec[j]++;
}
work_function();
} else {
cin >> b;
vec.push_back(b);
work_function();
}
}
system("pause");
return 0;
}