結果
問題 |
No.179 塗り分け
|
ユーザー |
|
提出日時 | 2015-07-02 11:43:51 |
言語 | Java (openjdk 23) |
結果 |
WA
|
実行時間 | - |
コード長 | 2,238 bytes |
コンパイル時間 | 4,900 ms |
コンパイル使用メモリ | 77,620 KB |
実行使用メモリ | 54,768 KB |
最終ジャッジ日時 | 2024-10-02 14:36:14 |
合計ジャッジ時間 | 14,700 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 6 |
other | AC * 37 WA * 3 |
ソースコード
import java.util.Scanner; public class Main_yukicoder179 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int h = sc.nextInt(); int w = sc.nextInt(); char[][] s = new char[h][]; int black = 0; for (int i = 0; i < h; i++) { s[i] = sc.next().toCharArray(); for (int j = 0; j < s[i].length; j++) { if (s[i][j] == '#') { black++; } } } boolean flag = false; if (black != 0 && black % 2 == 0) { fin: for (int dx = - w + 1; dx <= w - 1; dx++) { for (int dy = - h + 1; dy <= h - 1; dy++) { int same = 0; // next: for (int i = 0; i < h; i++) { for (int j = 0; j < w; j++) { if (i + dy >= 0 && i + dy < h && j + dx >= 0 && j + dx < w) { // if (s[i][j] != s[i + dy][j + dx]) { // break next; // } if (s[i][j] == '#' && s[i + dy][j + dx] == '#') { same++; } } } } if (same == (black / 2)) { boolean[][] used = new boolean[h][w]; flag = true; for (int i = 0; i < h; i++) { for (int j = 0; j < w; j++) { if (i + dy >= 0 && i + dy < h && j + dx >= 0 && j + dx < w) { if (s[i][j] == '#' && !used[i][j]) { if (s[i + dy][j + dx] == '#' && !used[i + dy][j + dx]) { used[i][j] = true; used[i + dy][j + dx] = true; } else { flag = false; } } } } } if (flag) { // System.out.println(dx + " " + dy); break fin; } } } } } if (flag) { System.out.println("YES"); } else { System.out.println("NO"); } sc.close(); } }