結果
問題 |
No.179 塗り分け
|
ユーザー |
![]() |
提出日時 | 2019-07-02 02:25:07 |
言語 | D (dmd 2.109.1) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,078 bytes |
コンパイル時間 | 620 ms |
コンパイル使用メモリ | 105,564 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-06-22 01:50:44 |
合計ジャッジ時間 | 1,649 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 6 |
other | AC * 34 WA * 6 |
ソースコード
import std.stdio, std.algorithm, std.conv, std.array, std.string, std.math, std.typecons, std.numeric; void main() { auto hw = readln.split.to!(int[]); auto H = hw[0]; auto W = hw[1]; char[][] MAP; MAP.length = H; int b; foreach (i; 0..H) { MAP[i].length = W; foreach (j, e; readln.chomp.to!(char[])) { if (e == '#') ++b; MAP[i][j] = e; } } if (b%2 == 1) { writeln("NO"); return; } auto MEMO = new int[][](H, W); int c; foreach (y; 0..H) { foreach (x; 0..W) { if (x == 0 && y == 0) continue; ++c; foreach (i; 0..H) { foreach (j; 0..W) { if (MAP[i][j] != '#' || MEMO[i][j] == c) continue; if (i+y >= H || j+x >= W || MAP[i+y][j+x] != '#' || MEMO[i+y][j+x] == c) goto next; MEMO[i][j] = MEMO[i+y][j+x] = c; } } writeln("YES"); return; next: } } writeln("NO"); }