結果
問題 |
No.179 塗り分け
|
ユーザー |
![]() |
提出日時 | 2016-02-24 11:46:21 |
言語 | Java (openjdk 23) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,552 bytes |
コンパイル時間 | 3,871 ms |
コンパイル使用メモリ | 78,140 KB |
実行使用メモリ | 41,448 KB |
最終ジャッジ日時 | 2024-10-03 03:16:01 |
合計ジャッジ時間 | 10,092 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 5 WA * 1 |
other | AC * 28 WA * 12 |
ソースコード
import java.util.Scanner; public class No179 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int h = Integer.parseInt(sc.next()); int w = Integer.parseInt(sc.next()); String s; int first = 0, trans = 0, diff = 0, count = 0, check = 0; boolean[] b = new boolean[h*w]; for (int i = 0; i < h; i++) { s = sc.next(); for (int j = 0; j < w; j++) { if(s.charAt(j) == '#'){ b[i*w+j] = true; count++; } } } if(count % 2 == 1){ System.out.println("NO"); return; } count /= 2; for (int i = 0; i < h * w; i++) { if(b[i]){ first = i; break; } } for (int i = first + 1; i < h * w; i++) { if(b[i]){ trans = i; diff = trans - first; check = 0; for (int j = first + 1; j < h * w; j++) { if(b[j] && j != trans){ if(j+diff >= h*w || !b[j+diff]){ break; } check++; } if(check == count / 2){ System.out.println("YES"); return; } } } } System.out.println("NO"); return; } }