結果
問題 | No.85 TVザッピング(1) |
ユーザー | holeguma |
提出日時 | 2015-08-14 16:43:37 |
言語 | Java21 (openjdk 21) |
結果 |
WA
|
実行時間 | - |
コード長 | 2,049 bytes |
コンパイル時間 | 2,199 ms |
コンパイル使用メモリ | 78,644 KB |
実行使用メモリ | 38,500 KB |
最終ジャッジ日時 | 2024-07-18 09:24:36 |
合計ジャッジ時間 | 4,736 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | WA | - |
testcase_01 | AC | 53 ms
37,356 KB |
testcase_02 | WA | - |
testcase_03 | WA | - |
testcase_04 | WA | - |
testcase_05 | WA | - |
testcase_06 | WA | - |
testcase_07 | WA | - |
testcase_08 | WA | - |
testcase_09 | WA | - |
testcase_10 | AC | 52 ms
37,212 KB |
testcase_11 | AC | 52 ms
37,320 KB |
testcase_12 | AC | 55 ms
36,808 KB |
testcase_13 | AC | 53 ms
36,932 KB |
testcase_14 | WA | - |
testcase_15 | AC | 52 ms
37,044 KB |
testcase_16 | AC | 52 ms
37,392 KB |
testcase_17 | AC | 52 ms
37,076 KB |
testcase_18 | AC | 52 ms
37,352 KB |
testcase_19 | AC | 56 ms
38,356 KB |
testcase_20 | WA | - |
testcase_21 | WA | - |
testcase_22 | WA | - |
testcase_23 | WA | - |
testcase_24 | AC | 52 ms
36,924 KB |
testcase_25 | WA | - |
testcase_26 | WA | - |
testcase_27 | AC | 56 ms
38,224 KB |
testcase_28 | WA | - |
testcase_29 | WA | - |
ソースコード
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Comparator; import java.util.Deque; import java.util.HashMap; import java.util.PriorityQueue; import java.util.StringTokenizer; class Main{ static final PrintWriter out=new PrintWriter(System.out); static final int INF=Integer.MAX_VALUE/2; static int[] dx={-1,0,1,0}; static int[] dy={0,-1,0,1}; public static void main(String[] args) throws IOException{ BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); String line=""; while((line=br.readLine())!=null&&!line.isEmpty()){ StringTokenizer st=new StringTokenizer(line); int n=Integer.parseInt(st.nextToken()); int m=Integer.parseInt(st.nextToken()); int c=Integer.parseInt(st.nextToken()); boolean[][] visited=new boolean[n][m]; if(dfs(c%m==0?c/m-1:c/m,c%m,visited,c,n,m)) out.println("YES"); else out.println("NO"); out.flush(); } } private static boolean dfs(int a,int b,boolean[][] visited,int c,int n,int m){ if(visited[a][b]&&m*a+b+1==c&&check(visited,n,m)) return true; visited[a][b]=true; for(int i=0;i<4;i++){ int na=a+dx[i]; int nb=b+dy[i]; if(na>=0&&nb>=0&&na<n&&nb<m&&!visited[na][nb]){ if(dfs(na,nb,visited,c,n,m)) return true; } } return false; } private static boolean check(boolean[][] visited,int n,int m){ for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(!visited[i][j]) return false; } } return true; } static class Pair{ int x; int y; Pair(int x,int y){ this.x=x; this.y=y; } } static class Edge{ int from; int to; int cost; Edge(int from,int to,int cost){ this.from=from; this.to=to; this.cost=cost; } Edge(int to,int cost){ this.to=to; this.cost=cost; } } static class Node{ int d; int v; Node(int d,int v){ this.d=d; this.v=v; } final static Comparator<Node> DISTANCE_ORDER=new DistanceOrderComparator(); static class DistanceOrderComparator implements Comparator<Node>{ public int compare(Node n1,Node n2){ return (n1.d>n2.d)?1:(n1.d<n2.d)?-1:0; } } } }