結果
問題 | No.179 塗り分け |
ユーザー |
![]() |
提出日時 | 2019-08-03 18:16:04 |
言語 | Java (openjdk 23) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,236 bytes |
コンパイル時間 | 1,789 ms |
コンパイル使用メモリ | 77,968 KB |
実行使用メモリ | 56,312 KB |
最終ジャッジ日時 | 2024-07-06 02:50:17 |
合計ジャッジ時間 | 8,832 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 WA * 3 |
other | AC * 15 WA * 25 |
ソースコード
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int h = sc.nextInt(); int w = sc.nextInt(); int[] grid = new int[h * w]; for(int i = 0; i < h; i++) { String s = sc.next(); for(int j = 0; j < w; j++) { if(s.charAt(j) == '#') { grid[w * i + j] = 1; } } } int c = 0; int pp = 0; // 1が黒、2が青、3が赤 for(int s = 0; s < w; s++) { for(int t = 0; t < h; t++) { int[] g = grid; int p = 0; for(int i = 0; i < h; i++) { for(int j = 0; j < w; j++) { int a = i * w + j; if(g[a] == 1) { if(((j + s) < w) && ((i + t) < h)) { int b = (i + t) * w + (j + s); if(c == 0) { g[a] = 2; g[b] = 3; } else { g[a] = 3; g[b] = 2; } c = 1 - c; } else { p++; } } if(p == 0) pp++; } } } } String ans = "NO"; if(pp > 0) ans = "YES"; System.out.println(ans); } }