제출 #898240

#제출 시각아이디문제언어결과실행 시간메모리
898240vjudge1Intergalactic ship (IZhO19_xorsum)C++17
0 / 100
2025 ms604 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define tp3 tuple<int, int, int> const int N = 31, mod = 1e9+7; int n, q, a[N], b[N], f[N]; tp3 queries[N]; /* dp[i][j] de cuantas formas puedo ir al array i con las j primeras queries */ signed main() { ios::sync_with_stdio(false); cin.tie(nullptr); cin >> n; for (int i = 0; i < n; i++) { cin >> a[i]; b[i] = a[i]; } cin >> q; for (int i = 0; i < q; i++) { int l, r, x; cin >> l >> r >> x; l--; r--; queries[i] = make_tuple(l, r, x); } int ans = 0; for (int mask = 0; mask < (1 << q); mask++) { memset(f, 0, sizeof(f)); for (int i = 0; i < q; i++) { if ((mask >> i) & 1) { int l = get<0>(queries[i]); int r = get<1>(queries[i]); int x = get<2>(queries[i]); f[l] ^= x; f[r+1] ^= x; } } int sum = 0; for (int i = 0; i < n; i++) { sum ^= f[i]; b[i] ^= sum; } for (int i = 0; i < n; i++) { sum = 0; for (int j = i; j < n; j++) { sum += a[j]; sum %= mod; ans += sum*sum % mod; ans %= mod; } } for (int i = 0; i < n; i++) { b[i] = a[i]; } } cout << ans << "\n"; }
#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...