Submission #00006
ソースコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | #include <bits/stdc++.h> using namespace std; using i64 = int64_t; const i64 INF = 1e18 + 7; signed main(){ int q, n; cin >> q >> n; vector<string> s(n); for (auto& x : s) cin >> x; vector<vector< int >> t(n / 2, vector< int >(n / 2, 0)); for ( int i = 0; i < n; ++i){ for ( int j = 0; j < n; ++j){ int ii = min(i, n - i - 1); int jj = min(j, n - j - 1); if (s[i][j] == '1' ) ++t[ii][jj]; } } int cnt = 0; for ( int i = 0; i < n / 2; ++i) for ( int j = 0; j < n / 2; ++j) if (t[i][j] == 0 || t[i][j] == 4) ++cnt; int ans = 0; if (cnt == n * n / 4) ++ans; for ( int _ = 0; _ < q - 1; ++_){ int m; cin >> m; for ( int i = 0; i < m; ++i){ int x, y; cin >> x >> y; --x, --y; int xx = min(x, n - x - 1); int yy = min(y, n - y - 1); if (s[x][y] == '0' ){ if (t[xx][yy] == 0) --cnt; if (++t[xx][yy] == 4) ++cnt; s[x][y] = '1' ; } else { if (t[xx][yy] == 4) --cnt; if (--t[xx][yy] == 0) ++cnt; s[x][y] = '0' ; } } if (cnt == n * n / 4) ++ans; } cout << ans << endl; } |
ステータス
項目 | データ |
---|---|
問題 | 0006 - 品質管理 |
ユーザー名 | shibh308 |
投稿日時 | 2019-09-08 13:56:34 |
言語 | C++17 |
状態 | Accepted |
得点 | 12 |
ソースコード長 | 1493 Byte |
最大実行時間 | 313 ms |
最大メモリ使用量 | 3472 KB |
セット
セット | 得点 | Cases | |
---|---|---|---|
1 | ALL | 12 / 12 | * |
テストケース
ファイル名 | 状態 | 実行時間 | メモリ使用量 | # |
---|---|---|---|---|
00-sample1.in | AC | 18 ms | 604 KB |
1
|
00-sample2.in | AC | 27 ms | 448 KB |
1
|
20-maxsymm01.in | AC | 313 ms | 3368 KB |
1
|
20-maxsymm02.in | AC | 310 ms | 3360 KB |
1
|
40-symm-unsymm01.in | AC | 92 ms | 3356 KB |
1
|
40-symm-unsymm02.in | AC | 164 ms | 3348 KB |
1
|
40-symm-unsymm03.in | AC | 208 ms | 3472 KB |
1
|
40-symm-unsymm04.in | AC | 210 ms | 3336 KB |
1
|
40-symm-unsymm05.in | AC | 196 ms | 3328 KB |
1
|
40-symm-unsymm06.in | AC | 187 ms | 3320 KB |
1
|