結果
問題 | No.179 塗り分け |
ユーザー |
![]() |
提出日時 | 2020-12-13 13:57:22 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 142 ms / 3,000 ms |
コード長 | 843 bytes |
コンパイル時間 | 148 ms |
コンパイル使用メモリ | 82,072 KB |
実行使用メモリ | 76,928 KB |
最終ジャッジ日時 | 2024-09-19 23:28:14 |
合計ジャッジ時間 | 3,902 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 6 |
other | AC * 40 |
ソースコード
def check(a,b): valid = [vi[:] for vi in V] for i in range(h): for j in range(w): if valid[i][j]: if i+a >= h or j+b >= w or valid[i+a][j+b]==0: return 0 else: valid[i+a][j+b] = 0 return 1 h,w = map(int,input().split()) b = [input() for _ in range(h)] V = [[1 if b[i][j]== "#" else 0 for j in range(w)] for i in range(h)] ok = 0 for i in range(h): for j in range(w): if i==j==0: continue if check(i,j): ok = 1 break if ok: break for i in range(h): V[i] = V[i][::-1] for i in range(h): for j in range(w): if i==j==0: continue if check(i,j): ok = 1 break if ok: break any1 = max(max(vi) for vi in V) print("YES" if ok and any1 else "NO")