Submission #1350307


Source Code Expand

//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 Info

Submission Time
Task A - Shik and Stone
User ashubeckham
Language Java8 (OpenJDK 1.8.0)
Score 200
Code Size 3945 Byte
Status AC
Exec Time 77 ms
Memory 23124 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 200 / 200
Status
AC × 3
AC × 22
Set Name Test Cases
Sample example0.txt, example1.txt, example2.txt
All 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
Case Name Status Exec Time Memory
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