Submission #18989583
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
vector<vector<ll>> cells(19, vector<ll>(19, -1));
vector<pair<ll, ll>> go(5);
bool is5(ll turn) {
bool ans = true;
for (ll k = 0; k < 5; k++) {
ll gi = go[k].first, gj = go[k].second;
if (0 <= gi && gi < 19 && 0 <= gj && gj < 19) {
if (cells[gi][gj] != turn) ans = false;
} else {
ans = false;
}
}
return ans;
}
bool win(ll turn) {
bool ans = false;
for (ll i = 0; i < 19; i++) {
for (ll j = 0; j < 19; j++) {
for (ll k = 0; k < 5; k++) go[k] = {i + k, j};
ans = (ans || is5(turn));
for (ll k = 0; k < 5; k++) go[k] = {i, j + k};
ans = (ans || is5(turn));
for (ll k = 0; k < 5; k++) go[k] = {i + k, j + k};
ans = (ans || is5(turn));
for (ll k = 0; k < 5; k++) go[k] = {i + k, j - k};
ans = (ans || is5(turn));
}
}
return ans;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
ll cnt = 0;
for (ll i = 0; i < 19; i++) {
string S; cin >> S;
for (ll j = 0; j < 19; j++) {
if (S[j] == 'o') {
cells[i][j] = 0;
cnt++;
} else if (S[j] == 'x') {
cells[i][j] = 1;
cnt--;
}
}
}
if (cnt > 1 || cnt < 0) {
cout << "NO" << '\n';
return 0;
}
if (win(0) && win(1)) {
cout << "NO" << '\n';
return 0;
}
if (win(0) && cnt == 0) {
cout << "NO" << '\n';
return 0;
}
if (win(1) && cnt == 1) {
cout << "NO" << '\n';
return 0;
}
vector<ll> wins(2, 0);
for (ll i = 0; i < 19; i++) {
for (ll j = 0; j < 19; j++) {
ll old = cells[i][j];
cells[i][j] = -1;
if (!win(0) && !win(1)) {
cout << "YES" << '\n';
return 0;
}
cells[i][j] = old;
}
}
cout << "NO" << '\n';
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | C - 五目並べチェッカー |
| User | nakaken88 |
| Language | C++ (GCC 9.2.1) |
| Score | 100 |
| Code Size | 1902 Byte |
| Status | AC |
| Exec Time | 25 ms |
| Memory | 3672 KiB |
Judge Result
| Set Name | All | ||
|---|---|---|---|
| Score / Max Score | 100 / 100 | ||
| Status |
|
| Set Name | Test Cases |
|---|---|
| All | 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 00_sample_04.txt, 00_sample_05.txt, 00_sample_06.txt, 00_sample_07.txt, 01_allblack.txt, 01_allwhite.txt, 01_chokudaivssanagipp_01_01.txt, 01_chokudaivssanagipp_01_02.txt, 01_chokudaivssanagipp_01_03.txt, 01_chokudaivssanagipp_01_04.txt, 01_chokudaivssanagipp_01_05.txt, 01_chokudaivssanagipp_01_06.txt, 01_chokudaivssanagipp_01_07.txt, 01_chokudaivssanagipp_02_01.txt, 01_chokudaivssanagipp_02_02.txt, 01_chokudaivssanagipp_02_03.txt, 01_corner_01.txt, 01_corner_02.txt, 01_corner_03.txt, 01_corner_04.txt, 01_double_o_01.txt, 01_double_o_02.txt, 01_double_x_01.txt, 01_double_x_02.txt, 01_full_01.txt, 01_full_02.txt, 01_plus_01.txt, 01_plus_02.txt, 01_plus_03.txt, 01_straight_10.txt, 01_straight_9.txt, 01_x_01.txt, 01_x_02.txt, 01_x_03.txt, 02_rand1_00.txt, 02_rand1_01.txt, 02_rand1_02.txt, 02_rand1_03.txt, 02_rand1_04.txt, 02_rand1_05.txt, 02_rand1_06.txt, 02_rand1_07.txt, 02_rand1_08.txt, 02_rand1_09.txt, 02_rand1_10.txt, 02_rand1_11.txt, 02_rand1_12.txt, 02_rand1_13.txt, 02_rand1_14.txt, 02_rand1_15.txt, 02_rand1_16.txt, 02_rand1_17.txt, 02_rand1_18.txt, 02_rand1_19.txt, 03_rand2_00.txt, 03_rand2_01.txt, 03_rand2_02.txt, 03_rand2_03.txt, 03_rand2_04.txt, 03_rand2_05.txt, 03_rand2_06.txt, 03_rand2_07.txt, 03_rand2_08.txt, 03_rand2_09.txt, 03_rand2_10.txt, 03_rand2_11.txt, 03_rand2_12.txt, 03_rand2_13.txt, 03_rand2_14.txt, 03_rand2_15.txt, 03_rand2_16.txt, 03_rand2_17.txt, 03_rand2_18.txt, 03_rand2_19.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_01.txt | AC | 9 ms | 3524 KiB |
| 00_sample_02.txt | AC | 2 ms | 3580 KiB |
| 00_sample_03.txt | AC | 2 ms | 3620 KiB |
| 00_sample_04.txt | AC | 10 ms | 3516 KiB |
| 00_sample_05.txt | AC | 8 ms | 3584 KiB |
| 00_sample_06.txt | AC | 15 ms | 3672 KiB |
| 00_sample_07.txt | AC | 8 ms | 3592 KiB |
| 01_allblack.txt | AC | 2 ms | 3596 KiB |
| 01_allwhite.txt | AC | 2 ms | 3632 KiB |
| 01_chokudaivssanagipp_01_01.txt | AC | 2 ms | 3672 KiB |
| 01_chokudaivssanagipp_01_02.txt | AC | 2 ms | 3628 KiB |
| 01_chokudaivssanagipp_01_03.txt | AC | 2 ms | 3616 KiB |
| 01_chokudaivssanagipp_01_04.txt | AC | 22 ms | 3568 KiB |
| 01_chokudaivssanagipp_01_05.txt | AC | 6 ms | 3524 KiB |
| 01_chokudaivssanagipp_01_06.txt | AC | 2 ms | 3600 KiB |
| 01_chokudaivssanagipp_01_07.txt | AC | 3 ms | 3672 KiB |
| 01_chokudaivssanagipp_02_01.txt | AC | 3 ms | 3632 KiB |
| 01_chokudaivssanagipp_02_02.txt | AC | 2 ms | 3620 KiB |
| 01_chokudaivssanagipp_02_03.txt | AC | 2 ms | 3636 KiB |
| 01_corner_01.txt | AC | 2 ms | 3632 KiB |
| 01_corner_02.txt | AC | 8 ms | 3584 KiB |
| 01_corner_03.txt | AC | 4 ms | 3632 KiB |
| 01_corner_04.txt | AC | 2 ms | 3592 KiB |
| 01_double_o_01.txt | AC | 14 ms | 3524 KiB |
| 01_double_o_02.txt | AC | 7 ms | 3628 KiB |
| 01_double_x_01.txt | AC | 18 ms | 3520 KiB |
| 01_double_x_02.txt | AC | 17 ms | 3672 KiB |
| 01_full_01.txt | AC | 6 ms | 3600 KiB |
| 01_full_02.txt | AC | 2 ms | 3568 KiB |
| 01_plus_01.txt | AC | 10 ms | 3464 KiB |
| 01_plus_02.txt | AC | 8 ms | 3620 KiB |
| 01_plus_03.txt | AC | 12 ms | 3512 KiB |
| 01_straight_10.txt | AC | 13 ms | 3584 KiB |
| 01_straight_9.txt | AC | 10 ms | 3580 KiB |
| 01_x_01.txt | AC | 12 ms | 3632 KiB |
| 01_x_02.txt | AC | 11 ms | 3564 KiB |
| 01_x_03.txt | AC | 13 ms | 3508 KiB |
| 02_rand1_00.txt | AC | 5 ms | 3516 KiB |
| 02_rand1_01.txt | AC | 3 ms | 3564 KiB |
| 02_rand1_02.txt | AC | 2 ms | 3656 KiB |
| 02_rand1_03.txt | AC | 23 ms | 3464 KiB |
| 02_rand1_04.txt | AC | 6 ms | 3584 KiB |
| 02_rand1_05.txt | AC | 3 ms | 3528 KiB |
| 02_rand1_06.txt | AC | 2 ms | 3616 KiB |
| 02_rand1_07.txt | AC | 3 ms | 3572 KiB |
| 02_rand1_08.txt | AC | 3 ms | 3580 KiB |
| 02_rand1_09.txt | AC | 3 ms | 3524 KiB |
| 02_rand1_10.txt | AC | 25 ms | 3524 KiB |
| 02_rand1_11.txt | AC | 8 ms | 3568 KiB |
| 02_rand1_12.txt | AC | 2 ms | 3600 KiB |
| 02_rand1_13.txt | AC | 2 ms | 3580 KiB |
| 02_rand1_14.txt | AC | 2 ms | 3628 KiB |
| 02_rand1_15.txt | AC | 2 ms | 3592 KiB |
| 02_rand1_16.txt | AC | 3 ms | 3512 KiB |
| 02_rand1_17.txt | AC | 2 ms | 3520 KiB |
| 02_rand1_18.txt | AC | 2 ms | 3632 KiB |
| 02_rand1_19.txt | AC | 3 ms | 3592 KiB |
| 03_rand2_00.txt | AC | 2 ms | 3632 KiB |
| 03_rand2_01.txt | AC | 2 ms | 3568 KiB |
| 03_rand2_02.txt | AC | 2 ms | 3632 KiB |
| 03_rand2_03.txt | AC | 3 ms | 3656 KiB |
| 03_rand2_04.txt | AC | 2 ms | 3624 KiB |
| 03_rand2_05.txt | AC | 12 ms | 3512 KiB |
| 03_rand2_06.txt | AC | 3 ms | 3528 KiB |
| 03_rand2_07.txt | AC | 3 ms | 3632 KiB |
| 03_rand2_08.txt | AC | 2 ms | 3512 KiB |
| 03_rand2_09.txt | AC | 2 ms | 3592 KiB |
| 03_rand2_10.txt | AC | 6 ms | 3516 KiB |
| 03_rand2_11.txt | AC | 2 ms | 3592 KiB |
| 03_rand2_12.txt | AC | 2 ms | 3520 KiB |
| 03_rand2_13.txt | AC | 4 ms | 3584 KiB |
| 03_rand2_14.txt | AC | 2 ms | 3600 KiB |
| 03_rand2_15.txt | AC | 2 ms | 3564 KiB |
| 03_rand2_16.txt | AC | 2 ms | 3600 KiB |
| 03_rand2_17.txt | AC | 2 ms | 3580 KiB |
| 03_rand2_18.txt | AC | 2 ms | 3656 KiB |
| 03_rand2_19.txt | AC | 2 ms | 3592 KiB |