結果
問題 | No.179 塗り分け |
ユーザー |
![]() |
提出日時 | 2022-05-13 13:57:23 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 992 bytes |
コンパイル時間 | 290 ms |
コンパイル使用メモリ | 82,176 KB |
実行使用メモリ | 76,996 KB |
最終ジャッジ日時 | 2024-07-21 11:54:27 |
合計ジャッジ時間 | 4,507 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 5 WA * 1 |
other | AC * 30 WA * 10 |
ソースコード
H, W = map(int, input().split()) c = [] cnt = 0 for _ in range(H): s = list(input()) cnt += s.count('#') c.append(s) if cnt == 0 or cnt%2==1: print('NO') exit() def solve(i, j): r1, r2 = range(H), range(W) r11, r22 = reversed(range(H)), reversed(range(W)) w1 = [r1, r11] w2 = [r2, r22] p, q = w1[i<0], w2[j<0] b = set() for x in p: for y in q: if x+i<0 or x+i>H-1 or y+j<0 or y+j>W-1: if (x, y) not in b and c[x][y]=='#': return False else: continue if (x, y) in b or c[x][y] == '.': continue b.add((x, y)) if c[x+i][y+j]=='.': return False else: b.add((x+i, y+j)) return True for i in range(-H+1, H): for j in range(-W+1, W): if i == j: continue if solve(i, j): print('YES') exit() print('NO')