結果
| 問題 | No.323 yuki国 |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2016-03-14 03:21:01 |
| 言語 | Java (openjdk 23) |
| 結果 |
AC
|
| 実行時間 | 602 ms / 5,000 ms |
| コード長 | 1,478 bytes |
| コンパイル時間 | 3,764 ms |
| コンパイル使用メモリ | 82,592 KB |
| 実行使用メモリ | 84,672 KB |
| 最終ジャッジ日時 | 2024-06-28 12:30:43 |
| 合計ジャッジ時間 | 14,833 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 6 |
| other | AC * 32 |
ソースコード
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][10000];
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>3000000)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>5000||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");
}
}