AtCoder Grand Contest 007

Submission #1350307

Source codeソースコード

//Do what you can't.

import java.io.*;
import java.util.*;
import java.math.BigInteger;
public class Main  {
  public static void main(String[] args) {
    InputReader in = new InputReader(System.in);
    PrintWriter w = new PrintWriter(System.out);
    int r = in.nextInt(), c = in.nextInt();
    char[][] mat = new char[r][c];
    int[] start = new int[r];
    int[] end = new int[r];
    for (int i = 0; i < r; i++) {
      mat[i] = in.readString().toCharArray();
      boolean done = false;
      for (int j = 0; j < c; j++) {
        if (!done && mat[i][j] == '#') {
          start[i] = j;
          done = true;
        }
        if (mat[i][j] == '#')
          end[i] = j;
      }
    }
    boolean invalid = false;
    for (int i = 0; i < r; i++) {
      if (i > 0 && start[i] != end[i - 1]) {
        invalid = true;
        break;
      }
      for (int j = start[i]; j <= end[i]; j++) {
        if (mat[i][j] != '#') {
          invalid = true;
          break;
        }
      }
      if (invalid)
        break;
    }

    if (invalid)
      w.println("Impossible");
    else
      w.println("Possible");

    w.close();
  }
  static class InputReader {

    private final InputStream stream;
    private final byte[] buf = new byte[8192];
    private int curChar, snumChars;
    private SpaceCharFilter filter;

    public InputReader(InputStream stream) {
      this.stream = stream;
    }

    public int snext() {
      if (snumChars == -1)
        throw new InputMismatchException();
      if (curChar >= snumChars) {
        curChar = 0;
        try {
          snumChars = stream.read(buf);
        } catch (IOException e) {
          throw new InputMismatchException();
        }
        if (snumChars <= 0)
          return -1;
      }
      return buf[curChar++];
    }

    public int nextInt() {
      int c = snext();
      while (isSpaceChar(c)) {
        c = snext();
      }
      int sgn = 1;
      if (c == '-') {
        sgn = -1;
        c = snext();
      }
      int res = 0;
      do {
        if (c < '0' || c > '9')
          throw new InputMismatchException();
        res *= 10;
        res += c - '0';
        c = snext();
      } while (!isSpaceChar(c));
      return res * sgn;
    }

    public long nextLong() {
      int c = snext();
      while (isSpaceChar(c)) {
        c = snext();
      }
      int sgn = 1;
      if (c == '-') {
        sgn = -1;
        c = snext();
      }
      long res = 0;
      do {
        if (c < '0' || c > '9')
          throw new InputMismatchException();
        res *= 10;
        res += c - '0';
        c = snext();
      } while (!isSpaceChar(c));
      return res * sgn;
    }

    public int[] nextIntArray(int n) {
      int a[] = new int[n];
      for (int i = 0; i < n; i++) {
        a[i] = nextInt();
      }
      return a;
    }

    public String readString() {
      int c = snext();
      while (isSpaceChar(c)) {
        c = snext();
      }
      StringBuilder res = new StringBuilder();
      do {
        res.appendCodePoint(c);
        c = snext();
      } while (!isSpaceChar(c));
      return res.toString();
    }

    public String nextLine() {
      int c = snext();
      while (isSpaceChar(c))
        c = snext();
      StringBuilder res = new StringBuilder();
      do {
        res.appendCodePoint(c);
        c = snext();
      } while (!isEndOfLine(c));
      return res.toString();
    }

    public boolean isSpaceChar(int c) {
      if (filter != null)
        return filter.isSpaceChar(c);
      return c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == -1;
    }

    private boolean isEndOfLine(int c) {
      return c == '\n' || c == '\r' || c == -1;
    }

    public interface SpaceCharFilter {
      public boolean isSpaceChar(int ch);
    }
  }
}

Submission

Task問題 A - Shik and Stone
User nameユーザ名 ashubeckham
Created time投稿日時
Language言語 Java8 (OpenJDK 1.8.0)
Status状態 AC
Score得点 200
Source lengthソースコード長 3945 Byte
File nameファイル名
Exec time実行時間 77 ms
Memory usageメモリ使用量 23124 KB

Test case

Set

Set name Score得点 / Max score Cases
Sample - example0.txt,example1.txt,example2.txt
All 200 / 200 000.txt,001.txt,002.txt,003.txt,004.txt,005.txt,006.txt,007.txt,008.txt,009.txt,010.txt,011.txt,012.txt,013.txt,014.txt,015.txt,016.txt,017.txt,018.txt,example0.txt,example1.txt,example2.txt

Test case

Case name Status状態 Exec time実行時間 Memory usageメモリ使用量
000.txt AC 70 ms 22612 KB
001.txt AC 69 ms 21076 KB
002.txt AC 68 ms 19284 KB
003.txt AC 69 ms 19540 KB
004.txt AC 70 ms 21076 KB
005.txt AC 77 ms 16980 KB
006.txt AC 69 ms 20308 KB
007.txt AC 67 ms 21204 KB
008.txt AC 70 ms 21076 KB
009.txt AC 68 ms 19156 KB
010.txt AC 70 ms 20948 KB
011.txt AC 68 ms 23124 KB
012.txt AC 68 ms 18516 KB
013.txt AC 70 ms 20692 KB
014.txt AC 67 ms 19156 KB
015.txt AC 67 ms 21332 KB
016.txt AC 69 ms 21076 KB
017.txt AC 68 ms 19284 KB
018.txt AC 73 ms 19284 KB
example0.txt AC 69 ms 21204 KB
example1.txt AC 69 ms 21072 KB
example2.txt AC 68 ms 18260 KB