This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
#define f first
#define s second
#define int long long
#define pii pair<int,int>
using namespace std;
const int N = 2e5 + 5, mod = 1e9 + 7; // !
int t,a[N],x[N],n,q;
vector<pair<pii,int > > all;
main(){
cin >> n;
for(int i = 1; i <= n; i++) {
cin >> a[i];
}
cin >> q;
for(int i = 1; i <= q; i++) {
int l,r,x;
cin >> l >> r >> x;
all.push_back({{l,r},x});
}
int ans = 0;
for(int mask = 0; mask <(1 << q); mask++){
for(int i = 1; i <= n; i++) x[i] = a[i];
for(int i = 0; i < q; i++) {
if((1 << i) & mask) {
for(int j = all[i].f.f; j <= all[i].f.s; j++) x[j] ^= all[i].s;
}
}
for(int i = 1; i <= n;i ++) {
int sum = 0;
for(int j = i; j <= n; j++){
sum += x[j];
ans += sum * sum;
ans %= mod;
}
}
}
cout << ans;
}
Compilation message (stderr)
xorsum.cpp:10:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
10 | main(){
| ^~~~| # | 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... |