Submission #1138785

#TimeUsernameProblemLanguageResultExecution timeMemory
1138785AHOKAIntergalactic ship (IZhO19_xorsum)C++20
4 / 100
2095 ms328 KiB
#pragma GCC optimize("O3") #include <bits/stdc++.h> using namespace std; #define threesum cin.tie(NULL); cout.tie(NULL); ios_base::sync_with_stdio(false) #define all(a) a.begin(), a.end() #define F first #define S second #define int long long #define double long double #define pii pair<int, int> #define ppp pair<int, pii> #define dout cout << fixed << setprecision(15) #define mid ((l + r) / 2) #define lc (2 * id) #define rc (lc + 1) const int maxn = 1e6 + 10, maxm = 3e1 + 10, oo = 1e18 + 10, lg = 8, sq = 350, mod = 1e9 + 7; int n, m, a[maxm], b[maxm], px[maxm]; vector<ppp> q; signed main() { threesum; cin >> n; for (int i = 1; i <= n;i++) cin >> a[i]; cin >> m; for (int i = 1; i <= m;i++){ int l, r, x; cin >> l >> r >> x; q.push_back({x, {l, r}}); } int ans = 0; for (int mask = 0; mask < (1ll << m); mask++){ for (int i = 0; i < m; i++) if(mask & (1ll << i)){ px[q[i].S.F] ^= q[i].F; px[q[i].S.S + 1] ^= q[i].F; } for (int i = 1; i <= n; i++){ px[i] ^= px[i - 1]; b[i] = a[i] ^ px[i]; } int res = 0; for (int i = 1; i <= n; i++){ int s = 0; for (int j = i; j <= n; j++){ (s += b[j]) %= mod; (res += (s * s) % mod) %= mod; } } (ans += res) %= mod; for (int i = 1; i <= n; i++) px[i] = 0; } cout << ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...