# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
905007 | 2024-01-12T12:51:02 Z | LucaLucaM | Intergalactic ship (IZhO19_xorsum) | C++17 | 2000 ms | 2904 KB |
#include <iostream> #include <vector> #include <algorithm> #include <cassert> #include <cstring> #warning That's the baby, that's not my baby #define int long long typedef long long ll; const int mod = 1e9 + 7; const int NMAX = 30; const int VMAX = 128; struct Update { int l, r, x; }; int cnt[VMAX][VMAX]; ll newCnt[VMAX][VMAX]; ll ways[NMAX][NMAX]; /// cnt[x][y] =def= pt cate subset uri am a[i] = x, a[j] = y? #define debug(x) #x << " = " << x signed main() { std::ios_base::sync_with_stdio(false); std::cin.tie(0); int n; std::cin >> n; std::vector<int> a(n); for (int i = 0; i < n; i++) { std::cin >> a[i]; } for (int i = 0; i < n; i++) { for (int j = i; j < n; j++) { ways[i][j] = (i + 1) * (n - j); } } int q; std::cin >> q; std::vector<Update> Q(q); for (auto &[l, r, v] : Q) { std::cin >> l >> r >> v; --l, --r; } ll answer = 0; for (int i = 0; i < n; i++) { for (int j = i; j < n; j++) { memset(cnt, 0, sizeof(cnt)); cnt[a[i]][a[j]] = 1; for (auto &[l, r, v] : Q) { for (int x = 0; x < VMAX; x++) { for (int y = 0; y < VMAX; y++) { int newX = x; int newY = y; if (l <= i <= r) { newX ^= v; } if (l <= j <= r) { newY ^= v; } newCnt[x][y] += cnt[x][y]; newCnt[newX][newY] += cnt[x][y]; } } for (int x = 0; x < VMAX; x++) { for (int y = 0; y < VMAX; y++) { cnt[x][y] = newCnt[x][y] % mod; newCnt[x][y] = 0; } } } for (int x = 0; x < VMAX; x++) { for (int y = 0; y < VMAX; y++) { if (i == j) { if (x == y) { // if (cnt[x][x] != 0) { // std::cout << "! " << x << ' ' << i << ' ' << cnt[x][x] << '\n'; // } answer += (ll) cnt[x][x] * x % mod * x % mod * ways[i][j] % mod; } } else { answer += (ll) 2 * cnt[x][y] * x % mod * y % mod * ways[i][j] % mod; } } } } } std::cout << answer % mod; return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 600 KB | Output is correct |
2 | Correct | 2 ms | 344 KB | Output is correct |
3 | Incorrect | 30 ms | 688 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 600 KB | Output is correct |
2 | Correct | 2 ms | 344 KB | Output is correct |
3 | Incorrect | 30 ms | 688 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 2009 ms | 2904 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 2098 ms | 604 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 486 ms | 696 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 486 ms | 696 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 600 KB | Output is correct |
2 | Correct | 2 ms | 344 KB | Output is correct |
3 | Incorrect | 30 ms | 688 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 600 KB | Output is correct |
2 | Correct | 2 ms | 344 KB | Output is correct |
3 | Incorrect | 30 ms | 688 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 600 KB | Output is correct |
2 | Correct | 2 ms | 344 KB | Output is correct |
3 | Incorrect | 30 ms | 688 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |