Submission #145134


Source Code Expand

import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;

public class Main{
	public static void main(String[] args){
		new Main().run();
	}

	int H, W;
	void run()
	{
		Scanner cin = new Scanner(System.in);
		H = cin.nextInt();
		W = cin.nextInt();
		String[] board = new String[H];
		for(int i=0;i<H;i++){
			board[i] = cin.next();
		}

		//sの場所を探す
		int fx = -1;
		int fy = -1;
		for(int i=0;i<H;i++){
			for(int j=0;j<W;j++){
				if(board[i].charAt(j) == 's'){
					fy = i;
					fx = j;
				}
			}
		}

		//初期状態の挿入
		Queue<Integer> nowq = new LinkedList<Integer>();
		nowq.add(encode(fy, fx));

		//移動先の列挙
		int[] vy = new int[]{1,0,-1,0};
		int[] vx = new int[]{0,1,0,-1};

		//到達したかどうかのチェック用
		boolean[][] check = new boolean[H][W];
		check[fy][fx] = true;

		//幅優先探索を三回繰り返す
		for(int i = 0; i < 3; i++){

			//破壊した壁を入れるキューを用意する
			Queue<Integer> nextq = new LinkedList<Integer>();

			//幅優先探索
			while(!nowq.isEmpty()){
				//現在位置を取ってくる
				int now = nowq.poll();
				int y = now / 1000;
				int x = now % 1000;

				//4方向に移動できるので、それぞれの移動先を調べる
				for(int j=0;j<4;j++){
					int ny = y + vy[j];
					int nx = x + vx[j];

					//範囲外だったらcontinue
					if(!ok(ny,nx)) continue;
					//既に調べてあるマスだったらcontinue
					if(check[ny][nx]) continue;

					//調査済みフラグを立てる
					check[ny][nx] = true;

					//ゴールなら終了
					if(board[ny].charAt(nx) == 'g'){
						System.out.println("YES");
						return;
					}
					//壁なら壁用キューに入れる
					else if(board[ny].charAt(nx) == '#'){
						nextq.add(encode(ny,nx));
					}
					//それ以外なら通常のキューに入れる
					else{
						nowq.add(encode(ny,nx));
					}
				}

			}
			nowq = nextq;
		}
		System.out.println("NO");
		return;
	}

	int encode(int y, int x){
		return y * 1000 + x;
	}

	boolean ok(int y, int x){
		return y >= 0 && x >= 0 && y < H && x < W;
	}
}

Submission Info

Submission Time
Task C - 器物損壊!高橋君
User chokudai
Language Java (OpenJDK 1.7.0)
Score 100
Code Size 2235 Byte
Status AC
Exec Time 718 ms
Memory 37808 KB

Judge Result

Set Name All
Score / Max Score 100 / 100
Status
AC × 83
Set Name Test Cases
All 00_min_01.txt, 00_min_02.txt, 00_min_03.txt, 00_min_04.txt, 00_min_05.txt, 00_min_06.txt, 00_min_07.txt, 00_min_08.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 00_sample_04.txt, 00_sample_05.txt, 01_rnd_00.txt, 01_rnd_01.txt, 01_rnd_02.txt, 01_rnd_03.txt, 01_rnd_04.txt, 01_rnd_05.txt, 01_rnd_06.txt, 01_rnd_07.txt, 01_rnd_08.txt, 01_rnd_09.txt, 01_rnd_10.txt, 01_rnd_11.txt, 01_rnd_12.txt, 01_rnd_13.txt, 01_rnd_14.txt, 01_rnd_15.txt, 01_rnd_16.txt, 01_rnd_17.txt, 01_rnd_18.txt, 01_rnd_19.txt, 02_rndhard_00.txt, 02_rndhard_01.txt, 02_rndhard_02.txt, 02_rndhard_03.txt, 02_rndhard_04.txt, 02_rndhard_05.txt, 02_rndhard_06.txt, 02_rndhard_07.txt, 02_rndhard_08.txt, 02_rndhard_09.txt, 02_rndhard_10.txt, 02_rndhard_11.txt, 02_rndhard_12.txt, 02_rndhard_13.txt, 02_rndhard_14.txt, 02_rndhard_15.txt, 02_rndhard_16.txt, 02_rndhard_17.txt, 02_rndhard_18.txt, 02_rndhard_19.txt, 02_rndhard_20.txt, 02_rndhard_21.txt, 02_rndhard_22.txt, 02_rndhard_23.txt, 02_rndhard_24.txt, 02_rndhard_25.txt, 02_rndhard_26.txt, 02_rndhard_27.txt, 02_rndhard_28.txt, 02_rndhard_29.txt, 02_rndhard_30.txt, 02_rndhard_31.txt, 02_rndhard_32.txt, 02_rndhard_33.txt, 02_rndhard_34.txt, 02_rndhard_35.txt, 02_rndhard_36.txt, 02_rndhard_37.txt, 02_rndhard_38.txt, 02_rndhard_39.txt, 03_rndhardsmall_00.txt, 03_rndhardsmall_01.txt, 03_rndhardsmall_02.txt, 03_rndhardsmall_03.txt, 03_rndhardsmall_04.txt, 03_rndhardsmall_05.txt, 03_rndhardsmall_06.txt, 03_rndhardsmall_07.txt, 03_rndhardsmall_08.txt, 03_rndhardsmall_09.txt
Case Name Status Exec Time Memory
00_min_01.txt AC 477 ms 23264 KB
00_min_02.txt AC 467 ms 23424 KB
00_min_03.txt AC 484 ms 23268 KB
00_min_04.txt AC 483 ms 23288 KB
00_min_05.txt AC 462 ms 23264 KB
00_min_06.txt AC 452 ms 23264 KB
00_min_07.txt AC 455 ms 23260 KB
00_min_08.txt AC 466 ms 23260 KB
00_sample_01.txt AC 479 ms 23384 KB
00_sample_02.txt AC 463 ms 23264 KB
00_sample_03.txt AC 463 ms 23396 KB
00_sample_04.txt AC 452 ms 23388 KB
00_sample_05.txt AC 446 ms 23388 KB
01_rnd_00.txt AC 557 ms 27320 KB
01_rnd_01.txt AC 598 ms 28556 KB
01_rnd_02.txt AC 593 ms 30056 KB
01_rnd_03.txt AC 649 ms 35316 KB
01_rnd_04.txt AC 583 ms 30840 KB
01_rnd_05.txt AC 580 ms 28892 KB
01_rnd_06.txt AC 614 ms 35348 KB
01_rnd_07.txt AC 641 ms 36864 KB
01_rnd_08.txt AC 554 ms 28028 KB
01_rnd_09.txt AC 575 ms 28736 KB
01_rnd_10.txt AC 639 ms 35888 KB
01_rnd_11.txt AC 587 ms 28884 KB
01_rnd_12.txt AC 622 ms 33936 KB
01_rnd_13.txt AC 566 ms 27760 KB
01_rnd_14.txt AC 626 ms 28984 KB
01_rnd_15.txt AC 668 ms 37808 KB
01_rnd_16.txt AC 556 ms 27668 KB
01_rnd_17.txt AC 633 ms 36084 KB
01_rnd_18.txt AC 567 ms 27308 KB
01_rnd_19.txt AC 604 ms 31636 KB
02_rndhard_00.txt AC 590 ms 28204 KB
02_rndhard_01.txt AC 622 ms 29976 KB
02_rndhard_02.txt AC 632 ms 33692 KB
02_rndhard_03.txt AC 624 ms 34928 KB
02_rndhard_04.txt AC 605 ms 31168 KB
02_rndhard_05.txt AC 615 ms 35912 KB
02_rndhard_06.txt AC 613 ms 32728 KB
02_rndhard_07.txt AC 718 ms 31420 KB
02_rndhard_08.txt AC 599 ms 29852 KB
02_rndhard_09.txt AC 596 ms 30504 KB
02_rndhard_10.txt AC 598 ms 29564 KB
02_rndhard_11.txt AC 595 ms 29924 KB
02_rndhard_12.txt AC 584 ms 28000 KB
02_rndhard_13.txt AC 584 ms 28496 KB
02_rndhard_14.txt AC 607 ms 31152 KB
02_rndhard_15.txt AC 618 ms 30188 KB
02_rndhard_16.txt AC 611 ms 32792 KB
02_rndhard_17.txt AC 622 ms 35616 KB
02_rndhard_18.txt AC 596 ms 30820 KB
02_rndhard_19.txt AC 592 ms 28532 KB
02_rndhard_20.txt AC 597 ms 29384 KB
02_rndhard_21.txt AC 616 ms 30116 KB
02_rndhard_22.txt AC 658 ms 31636 KB
02_rndhard_23.txt AC 607 ms 28748 KB
02_rndhard_24.txt AC 620 ms 35652 KB
02_rndhard_25.txt AC 610 ms 31404 KB
02_rndhard_26.txt AC 597 ms 27932 KB
02_rndhard_27.txt AC 601 ms 29188 KB
02_rndhard_28.txt AC 564 ms 27492 KB
02_rndhard_29.txt AC 597 ms 28796 KB
02_rndhard_30.txt AC 580 ms 29000 KB
02_rndhard_31.txt AC 545 ms 27052 KB
02_rndhard_32.txt AC 688 ms 32536 KB
02_rndhard_33.txt AC 595 ms 30024 KB
02_rndhard_34.txt AC 580 ms 28368 KB
02_rndhard_35.txt AC 614 ms 31520 KB
02_rndhard_36.txt AC 654 ms 30828 KB
02_rndhard_37.txt AC 597 ms 29572 KB
02_rndhard_38.txt AC 615 ms 30416 KB
02_rndhard_39.txt AC 587 ms 29464 KB
03_rndhardsmall_00.txt AC 459 ms 23268 KB
03_rndhardsmall_01.txt AC 458 ms 23396 KB
03_rndhardsmall_02.txt AC 463 ms 23252 KB
03_rndhardsmall_03.txt AC 460 ms 23260 KB
03_rndhardsmall_04.txt AC 493 ms 23332 KB
03_rndhardsmall_05.txt AC 508 ms 23392 KB
03_rndhardsmall_06.txt AC 508 ms 23364 KB
03_rndhardsmall_07.txt AC 461 ms 23264 KB
03_rndhardsmall_08.txt AC 473 ms 23392 KB
03_rndhardsmall_09.txt AC 476 ms 23268 KB