Untitled
user_5668965
c_cpp
a year ago
977 B
24
Indexable
#include <iostream>
#include <vector>
using namespace std;
int main() {
int t;
cin >> t;
while (t--) {
int n;
cin >> n;
vector<int> a(n + 1);
for (int i = 1; i <= n; ++i) {
cin >> a[i];
}
string s;
cin >> s;
int q;
cin >> q;
vector<int> ans(2, 0);
vector<int> pref(n + 1, 0);
for (int i = 1; i <= n; ++i) {
ans[s[i - 1] - '0'] ^= a[i];
pref[i] = pref[i - 1] ^ a[i];
}
int massxor = 0;
while (q--) {
int tp;
cin >> tp;
if (tp == 1) {
int l, r;
cin >> l >> r;
massxor ^= (pref[r] ^ pref[l - 1]);
} else {
int g;
cin >> g;
cout << (massxor ^ ans[g]) << endl;
}
}
}
return 0;
}
Editor is loading...
Leave a Comment