Submission #2558278
Source Code Expand
package comPro.atcoder.arc; import java.io.IOException; import java.io.InputStream; import java.io.PrintStream; import java.lang.reflect.Array; import java.util.Arrays; import java.util.LinkedList; import java.util.NoSuchElementException; import java.util.Queue; public class ATC001A { // public class Main { private static final PrintStream ps = System.out; private static final InputStream IS = System.in; private static final byte[] BUFFER = new byte[1024]; private static int ptr = 0; private static int buflen = 0; public static void main(String[] args) { int H = ni(); int W = ni(); char[][] g = new char[H][W]; int[][] d = new int[H][W]; int sh = -1, sw = -1, gh = -1, gw = -1; for (int i = 0; i < H; i++) { Arrays.fill(d[i], -1); } for (int i = 0; i < H; i++) { g[i] = n().toCharArray(); for (int j = 0; j < W; j++) { if (g[i][j] == 's') { sh = i; sw = j; } else if (g[i][j] == 'g') { gh = i; gw = j; } } } int[] mh = {1, -1, 0, 0,}; int[] mw = {0, 0, 1, -1,}; Queue<Integer> qh = new LinkedList<Integer>(); Queue<Integer> qw = new LinkedList<Integer>(); qh.add(sh); qw.add(sw); while (!qh.isEmpty()) { int h = qh.poll(); int w = qw.poll(); for (int i = 0; i < mh.length; i++) { int nh = h + mh[i]; int nw = w + mw[i]; if ( nh >= 0 && nh < H && nw >= 0 && nw < W && g[nh][nw] != '#' && d[nh][nw] == -1) { d[nh][nw] = d[h][w] + 1; qh.add(nh); qw.add(nw); } } } System.out.println(d[gh][gw] >= 0 ? "Yes" : "No"); } private static boolean hasNextByte() { if (ptr < buflen) return true; else { ptr = 0; try { buflen = IS.read(BUFFER); } catch (IOException e) { e.printStackTrace(); } if (buflen <= 0) return false; } return true; } private static int readByte() { if (hasNextByte()) return BUFFER[ptr++]; else return -1; } private static boolean isPrintableChar(int c) { return 33 <= c && c <= 126; } public static boolean hasNext() { while (hasNextByte() && !isPrintableChar(BUFFER[ptr])) ptr++; return hasNextByte(); } public static String n() { if (!hasNext()) throw new NoSuchElementException(); StringBuilder sb = new StringBuilder(); int b = readByte(); while (isPrintableChar(b)) { sb.appendCodePoint(b); b = readByte(); } return sb.toString(); } public static long nl() { if (!hasNext()) throw new NoSuchElementException(); long n = 0; boolean minus = false; int b = readByte(); if (b == '-') { minus = true; b = readByte(); } if (b < '0' || '9' < b) throw new NumberFormatException(); while (true) { if ('0' <= b && b <= '9') { n *= 10; n += b - '0'; } else if (b == -1 || !isPrintableChar(b)) return minus ? -n : n; else throw new NumberFormatException(); b = readByte(); } } public static int ni() { long nl = nl(); if (nl < Integer.MIN_VALUE || nl > Integer.MAX_VALUE) throw new NumberFormatException(); return (int) nl; } public static double nextDouble() { return Double.parseDouble(n()); } private static int[] nia(int n) { int[] a = new int[n]; for (int i = 0; i < n; i++) a[i] = ni(); return a; } }
Submission Info
Submission Time | |
---|---|
Task | A - 深さ優先探索 |
User | central_field |
Language | Java8 (OpenJDK 1.8.0) |
Score | 0 |
Code Size | 3444 Byte |
Status | CE |
Compile Error
./Main.java:11: error: class ATC001A is public, should be declared in a file named ATC001A.java public class ATC001A { ^ 1 error