結果

問題 No.323 yuki国
ユーザー 37zigen
提出日時 2016-03-14 03:17:54
言語 Java
(openjdk 23)
結果
WA  
実行時間 -
コード長 1,479 bytes
コンパイル時間 4,328 ms
コンパイル使用メモリ 85,296 KB
実行使用メモリ 357,096 KB
最終ジャッジ日時 2024-09-25 11:51:35
合計ジャッジ時間 18,647 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 6
other AC * 24 WA * 8
権限があれば一括ダウンロードができます

ソースコード

diff #

import java.util.ArrayDeque;
import java.util.Date;
import java.util.Queue;
import java.util.Scanner;
public class main{
	static class snow{
		int x,y,z;
		snow(int x,int y,int z){
			this.x=x;
			this.y=y;
			this.z=z;
		}
	}
	static int[] dx={1,0,-1,0};
	static int[] dy={0,1,0,-1};
	
	public static void main(String[] args){

		Scanner sc=new Scanner(System.in);
		long exec_time=new Date().getTime();
		int h=sc.nextInt();
		int w=sc.nextInt();
		int a=sc.nextInt();
		int si=sc.nextInt();
		int sj=sc.nextInt();
		int b=sc.nextInt();
		int gi=sc.nextInt();
		int gj=sc.nextInt();
		
		boolean[][] map=new boolean[h][w];
		for(int i=0;i<h;i++){
			String tmp=sc.next();
			for(int j=0;j<w;j++){
				if(tmp.charAt(j)=='*')map[i][j]=true;
			}
		}
		boolean[][][] used=new boolean[h][w][100000];
		Queue<snow> q=new ArrayDeque<>();
		q.add(new snow(si,sj,a));
		int count=0;
		while(!q.isEmpty()){
			snow now=q.poll();
			count++;
			if(count>300000)break;
			if(now.x==gi&&now.y==gj&&now.z==b){
				System.out.println("Yes");
				return;
			}
			for(int i=0;i<4;i++){
				int nextx=now.x+dx[i];
				int nexty=now.y+dy[i];
				if(nextx>=0&&nextx<h&&nexty>=0&&nexty<w){
					int nextz=now.z+(map[nextx][nexty]?1:-1);
					if(nextz<=0||nextz>50000||used[nextx][nexty][nextz])continue;
					q.add(new snow(nextx,nexty,nextz));
					used[nextx][nexty][nextz]=true;
				}
			}
		}
		System.out.println("No");

			System.err.println(new Date().getTime()-exec_time+"ms");		
		}
	}


0