#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
int n;
cin >> n;
int a[n];
for(int i = 0; i < n; i ++)
cin >> a[i];
int q;
cin >> q;
int l[q], r[q], x[q];
for(int i = 0; i < q; i ++)
{
cin >> l[i] >> r[i] >> x[i];
l[i]--;
}
ll ans = 0;
for(int mask = 0; mask < (1 << q); mask++)
{
int pref[n + 1] = {};
for(int i = 0; i < q; i ++)
if((1 << i)& mask)
pref[l[i]] ^= x[i], pref[r[i]] ^= x[i];
ll sm2 = 0, sm = 0, cur = 0;
for(int i = 0; i < n; i ++)
{
int v = a[i] ^ pref[i];
ll x = 0;
x += sm2;
x += 1ll * (i + 1) * (v * v);
x += sm * v * 2;
cur += v;
sm += (i + 1) * v;
sm2 = x;
ans += x;
}
}
cout << ans << endl;
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |