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>
using namespace std;
#define endl '\n'
#define ll long long
#define all(a) a.begin(), a.end()
#define fastio ios::sync_with_stdio(0), cin.tie(0);
#define fs first
#define ss second
#define print(a) \
for (auto x : a) \
cout << x << ' '; \
cout << endl;
#define printmp(a) \
for (auto x : a) \
cout << x.fs << ' ' << x.ss << endl;
const long long mod = 1e9 + 7;
void solve()
{
int n;
cin >> n;
vector<int> a(n);
for(int i = 0; i < n; i ++)
cin >> a[i];
int q;
cin >> q;
vector<pair<pair<int, int>, int>> S(q);
for(int i = 0; i < q; i ++){
int l, r, x;
cin >> l >> r >> x;
l --;
r --;
S[i] = {{l, r}, x};
}
int ans = 0;
for(int i = 0; i < (1 << q); i ++){
vector<int> b = a;
for(int j = 0; j < q; j ++){
if((i & (1 << j))){
for(int x = S[j].fs.fs; x <= S[j].fs.ss; x ++){
b[x] ^= S[j].ss;
}
}
}
for(int i = 0; i < n; i ++){
int s = 0;
for(int j = i; j < n; j ++){
s = (s + b[j]) % mod;
ans = (ans + s * s) % mod;
}
}
}
cout << ans;
}
signed main()
{
fastio int t = 1;
// cin >> t;
while (t--)
{
solve();
cout << endl;
}
}
# | 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... |