Submission #157045
Source Code Expand
import java.util.Scanner; public class Main{ public static void main(String[] args){ new Main().run(); } int N = 19; int[][] board; void run() { Scanner cin = new Scanner(System.in); board = new int[N][N]; //入力。String型は扱いにくいのでint型の2次元配列へ //ついでにoとxの数を数える int ocount = 0; int xcount = 0; for(int i=0;i<N;i++){ String st = cin.next(); for(int j=0;j<N;j++){ if(st.charAt(j) == 'o'){ board[i][j] = 1; ocount++; } if(st.charAt(j) == 'x'){ board[i][j] = 2; xcount++; } } } //どちらが最後の手であったかを調べる int prev = 0; if(ocount - 1 == xcount) prev = 1; if(ocount == xcount) prev = 2; //矛盾がある場合はNOを出力 if(prev == 0){ System.out.println("NO"); return; } //!!コーナーケース!まだ何も置かれていないときはYES if(ocount==0){ System.out.println("YES"); return; } //最終手候補となる石を列挙し、それぞれの直前の局面を調べる for(int i=0;i<N;i++){ for(int j=0;j<N;j++){ if(board[i][j] == prev){ board[i][j] = 0; if(checkboard()){ System.out.println("YES"); return; } board[i][j] = prev; } } } //条件に合う盤面が見つからなかったらNOを出力 System.out.println("NO"); } boolean checkboard(){ //8方向に移動する時の変数 int[] vy = new int[]{1,1,1,0,0,-1,-1,-1}; int[] vx = new int[]{1,0,-1,1,-1,1,0,-1}; //全ての盤面から、石の置いてある場所を探す for(int i=0;i<N;i++){ for(int j=0;j<N;j++){ //石を見つけたら、その石を起点とした5連結の石を調べる if(board[i][j] != 0){ int now = board[i][j]; //8方向に対して調べる for(int k=0;k<8;k++){ boolean flag = true; for(int l=0;l<5;l++){ int y = i + vy[k] * l; int x = j + vx[k] * l; if(!ok(y,x) || board[y][x] != now){ flag = false; break; } } //もし5連続の石を見つけたら離脱 if(flag) return false; } } } } return true; } boolean ok(int y, int x){ return y>=0 && x>=0 && y<N && x<N; } }
Submission Info
Submission Time | |
---|---|
Task | C - 五目並べチェッカー |
User | chokudai |
Language | Java (OpenJDK 1.7.0) |
Score | 100 |
Code Size | 2359 Byte |
Status | AC |
Exec Time | 498 ms |
Memory | 23664 KB |
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 | 458 ms | 23096 KB |
00_sample_02.txt | AC | 452 ms | 23188 KB |
00_sample_03.txt | AC | 452 ms | 23136 KB |
00_sample_04.txt | AC | 451 ms | 23088 KB |
00_sample_05.txt | AC | 455 ms | 23088 KB |
00_sample_06.txt | AC | 448 ms | 23128 KB |
00_sample_07.txt | AC | 449 ms | 23092 KB |
01_allblack.txt | AC | 455 ms | 23088 KB |
01_allwhite.txt | AC | 456 ms | 23096 KB |
01_chokudaivssanagipp_01_01.txt | AC | 449 ms | 23088 KB |
01_chokudaivssanagipp_01_02.txt | AC | 443 ms | 23096 KB |
01_chokudaivssanagipp_01_03.txt | AC | 446 ms | 23088 KB |
01_chokudaivssanagipp_01_04.txt | AC | 446 ms | 23080 KB |
01_chokudaivssanagipp_01_05.txt | AC | 447 ms | 23092 KB |
01_chokudaivssanagipp_01_06.txt | AC | 457 ms | 23088 KB |
01_chokudaivssanagipp_01_07.txt | AC | 435 ms | 23088 KB |
01_chokudaivssanagipp_02_01.txt | AC | 444 ms | 23084 KB |
01_chokudaivssanagipp_02_02.txt | AC | 446 ms | 23088 KB |
01_chokudaivssanagipp_02_03.txt | AC | 439 ms | 23092 KB |
01_corner_01.txt | AC | 441 ms | 23216 KB |
01_corner_02.txt | AC | 449 ms | 23468 KB |
01_corner_03.txt | AC | 470 ms | 23664 KB |
01_corner_04.txt | AC | 462 ms | 23604 KB |
01_double_o_01.txt | AC | 442 ms | 23088 KB |
01_double_o_02.txt | AC | 448 ms | 23216 KB |
01_double_x_01.txt | AC | 443 ms | 23092 KB |
01_double_x_02.txt | AC | 445 ms | 23084 KB |
01_full_01.txt | AC | 440 ms | 23096 KB |
01_full_02.txt | AC | 445 ms | 23220 KB |
01_plus_01.txt | AC | 442 ms | 23096 KB |
01_plus_02.txt | AC | 444 ms | 23092 KB |
01_plus_03.txt | AC | 444 ms | 23092 KB |
01_straight_10.txt | AC | 443 ms | 23216 KB |
01_straight_9.txt | AC | 445 ms | 23092 KB |
01_x_01.txt | AC | 445 ms | 23092 KB |
01_x_02.txt | AC | 446 ms | 23096 KB |
01_x_03.txt | AC | 443 ms | 23092 KB |
02_rand1_00.txt | AC | 463 ms | 23600 KB |
02_rand1_01.txt | AC | 464 ms | 23444 KB |
02_rand1_02.txt | AC | 442 ms | 23100 KB |
02_rand1_03.txt | AC | 463 ms | 23604 KB |
02_rand1_04.txt | AC | 441 ms | 23092 KB |
02_rand1_05.txt | AC | 441 ms | 23096 KB |
02_rand1_06.txt | AC | 453 ms | 23592 KB |
02_rand1_07.txt | AC | 438 ms | 23088 KB |
02_rand1_08.txt | AC | 443 ms | 23220 KB |
02_rand1_09.txt | AC | 468 ms | 23476 KB |
02_rand1_10.txt | AC | 457 ms | 23468 KB |
02_rand1_11.txt | AC | 464 ms | 23592 KB |
02_rand1_12.txt | AC | 451 ms | 23472 KB |
02_rand1_13.txt | AC | 498 ms | 23092 KB |
02_rand1_14.txt | AC | 446 ms | 23196 KB |
02_rand1_15.txt | AC | 468 ms | 23476 KB |
02_rand1_16.txt | AC | 449 ms | 23088 KB |
02_rand1_17.txt | AC | 447 ms | 23472 KB |
02_rand1_18.txt | AC | 440 ms | 23096 KB |
02_rand1_19.txt | AC | 443 ms | 23100 KB |
03_rand2_00.txt | AC | 452 ms | 23232 KB |
03_rand2_01.txt | AC | 457 ms | 23280 KB |
03_rand2_02.txt | AC | 441 ms | 23216 KB |
03_rand2_03.txt | AC | 444 ms | 23088 KB |
03_rand2_04.txt | AC | 442 ms | 23212 KB |
03_rand2_05.txt | AC | 444 ms | 23084 KB |
03_rand2_06.txt | AC | 440 ms | 23088 KB |
03_rand2_07.txt | AC | 446 ms | 23084 KB |
03_rand2_08.txt | AC | 452 ms | 23220 KB |
03_rand2_09.txt | AC | 451 ms | 22968 KB |
03_rand2_10.txt | AC | 449 ms | 23092 KB |
03_rand2_11.txt | AC | 455 ms | 23092 KB |
03_rand2_12.txt | AC | 461 ms | 23092 KB |
03_rand2_13.txt | AC | 447 ms | 23088 KB |
03_rand2_14.txt | AC | 445 ms | 23088 KB |
03_rand2_15.txt | AC | 444 ms | 23188 KB |
03_rand2_16.txt | AC | 483 ms | 23120 KB |
03_rand2_17.txt | AC | 458 ms | 23084 KB |
03_rand2_18.txt | AC | 443 ms | 22976 KB |
03_rand2_19.txt | AC | 450 ms | 23092 KB |