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
AC × 77
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