#include <bits/stdc++.h>
using namespace std;
#define ff first
#define ss second
#define ll long long
const int N = 5e5 + 5;
const ll M = 1e9 + 7;
ll n, q, ans;
vector <int> a, a1, l, r, x, b;
void f(int k){
if(k == q+1){
a1 = a;
for(int i = 1; i <= q; i++){
if(!b[i]) continue;
for(int j = l[i]; j <= r[i]; j++){
a1[j] ^= x[i];
}
}
for(int i = 1; i <= n; i++){
ll y = 0;
for(int j = i; j <= n; j++){
y += a1[j];
ans += (y*y);
ans %= M;
}
}
return;
}
for(int i = 0; i < 2; i++){
b[k] = i;
f(k+1);
}
}
int main(){
ios::sync_with_stdio(false); cin.tie(0);
cin >> n;
a.resize(n+1);
for(int i = 1; i <= n; i++){
cin >> a[i];
}
cin >> q;
l.resize(q+1), r.resize(q+1), x.resize(q+1), b.resize(q+1,0);
for(int i = 1; i <= q; i++){
cin >> l[i] >> r[i] >> x[i];
}
f(1);
cout << ans << '\n';
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... |