# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
77515 | 2018-09-28T10:26:35 Z | zubec | 즐거운 사진 수집 (JOI13_collecting) | C++14 | 1628 ms | 240656 KB |
#include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #include <cassert> #include <iostream> #include <sstream> #include <vector> #include <queue> #include <set> #include <map> #include <utility> #include <numeric> #include <algorithm> #include <bitset> #include <complex> using namespace std; typedef unsigned uint; typedef long long Int; const int INF = 1001001001; const Int INFLL = 1001001001001001001LL; template<typename T> void pv(T a, T b) { for (T i = a; i != b; ++i) cout << *i << " "; cout << endl; } template<typename T> void chmin(T& a, T b) { if (a > b) a = b; } template<typename T> void chmax(T& a, T b) { if (a < b) a = b; } int rowflip[(1<<21) + 50], colflip[(1<<21) + 50]; int rowall[21], colall[21]; void flip(int *seg, int *all, int dep, int x) { int p = (1<<dep) + x, sz = 1; seg[p] ^= 1; p >>= 1; sz <<= 1; --dep; while (p > 0) { if (seg[p] % sz == 0) { --all[dep]; } seg[p] = seg[2*p] + seg[2*p+1]; if (seg[p] % sz == 0) { ++all[dep]; } p >>= 1; sz <<= 1; --dep; } } int main() { int N, Q; scanf("%d%d", &N, &Q); for (int i = 0; i <= N; ++i) { rowall[i] = 1 << i; colall[i] = 1 << i; } for (int i = 0; i < Q; ++i) { int T, X; scanf("%d%d", &T, &X); --X; if (T == 0) { flip(rowflip, rowall, N, X); } else { flip(colflip, colall, N, X); } Int leaves = (1LL << N) * (1LL << N); for (int j = 0; j < N; ++j) { leaves -= (Int)rowall[j] * colall[j] * 3; } printf("%lld\n", 4 * (leaves - 1) / 3 + 1); } return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Correct | 2 ms | 380 KB | Output is correct |
3 | Correct | 2 ms | 444 KB | Output is correct |
4 | Correct | 2 ms | 448 KB | Output is correct |
5 | Correct | 2 ms | 500 KB | Output is correct |
6 | Correct | 3 ms | 504 KB | Output is correct |
7 | Correct | 2 ms | 524 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 4 ms | 572 KB | Output is correct |
2 | Correct | 3 ms | 648 KB | Output is correct |
3 | Correct | 3 ms | 724 KB | Output is correct |
4 | Correct | 3 ms | 752 KB | Output is correct |
5 | Correct | 3 ms | 764 KB | Output is correct |
6 | Correct | 3 ms | 776 KB | Output is correct |
7 | Correct | 3 ms | 864 KB | Output is correct |
8 | Correct | 4 ms | 960 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1485 ms | 44140 KB | Output is correct |
2 | Correct | 1512 ms | 61464 KB | Output is correct |
3 | Correct | 1288 ms | 68164 KB | Output is correct |
4 | Correct | 1509 ms | 96120 KB | Output is correct |
5 | Correct | 1628 ms | 113088 KB | Output is correct |
6 | Correct | 1550 ms | 129572 KB | Output is correct |
7 | Correct | 1627 ms | 148412 KB | Output is correct |
8 | Correct | 1621 ms | 165868 KB | Output is correct |
9 | Correct | 1344 ms | 170944 KB | Output is correct |
10 | Correct | 1538 ms | 189752 KB | Output is correct |
11 | Correct | 1535 ms | 215292 KB | Output is correct |
12 | Correct | 1532 ms | 232452 KB | Output is correct |
13 | Correct | 1452 ms | 240656 KB | Output is correct |