Submission #1143617

#TimeUsernameProblemLanguageResultExecution timeMemory
1143617crispxxIntergalactic ship (IZhO19_xorsum)C++20
17 / 100
2094 ms2632 KiB
/** * author: a.k * created: idk **/ #include <bits/stdc++.h> using namespace std; #define all(x) x.begin(), x.end() #define int long long #define nl '\n' const int Mod = 1e9 + 7; void add(int &a, const int &b) { a += b; if(a > Mod) { a -= Mod; } } signed main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; vector<int> b(n); for(auto &u : b) cin >> u; int q; cin >> q; vector<array<int, 3>> v(q); for(auto &[l, r, x] : v) { cin >> l >> r >> x; l--; } int ans = 0; for(int mask = 0; mask < (1 << q); mask++) { auto a = b; for(int i = 0; i < q; i++) { if(mask >> i & 1) { auto [l, r, x] = v[i]; for(int k = l; k < r; k++) a[k] ^= x; } } vector<int> pref(n + 1); for(int i = 0; i < n; i++) add(pref[i + 1], pref[i] + a[i]); int sum = 0; for(int i = 0; i < n; i++) { for(int j = i; j < n; j++) { int u = pref[j + 1] - pref[i]; add(sum, (u * u) % Mod); } } add(ans, sum); } cout << ans << nl; }
#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...