結果
| 問題 |
No.2456 Stamp Art
|
| コンテスト | |
| ユーザー |
srjywrdnprkt
|
| 提出日時 | 2023-08-03 00:57:34 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
RE
(最新)
AC
(最初)
|
| 実行時間 | - |
| コード長 | 1,137 bytes |
| コンパイル時間 | 314 ms |
| コンパイル使用メモリ | 81,920 KB |
| 実行使用メモリ | 332,620 KB |
| 最終ジャッジ日時 | 2024-11-27 09:25:49 |
| 合計ジャッジ時間 | 25,372 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 15 RE * 8 |
ソースコード
def oi(): return int(input())
def os(): return input()
def mi(): return list(map(int, input().split()))
H, W = mi()
S = [os() for _ in range(H)]
v = [[0 for i in range(H+2)] for j in range(W+2)]
for i in range(1, H+1):
for j in range(1, W+1):
if S[i-1][j-1] == '#':
v[i][j]+=1
v[i][j] += v[i-1][j] + v[i][j-1] - v[i-1][j-1]
def solve(X):
w = [[0 for i in range(H+3)] for j in range(W+3)]
for i in range(1, H-X+2):
for j in range(1, W-X+2):
if v[i+X-1][j+X-1]-v[i+X-1][j-1]-v[i-1][j+X-1]+v[i-1][j-1] == X*X:
w[i][j]+=1
w[i+X][j]-=1
w[i][j+X]-=1
w[i+X][j+X]+=1
for i in range(0, H+2):
for j in range(1, W+2):
w[i][j] += w[i][j-1]
for i in range(1, H+2):
for j in range(0, W+2):
w[i][j] += w[i-1][j];
for i in range(1, H+1):
for j in range(1, W+1):
if S[i-1][j-1] == '#' and w[i][j] == 0:
return 0
return 1
l=1
r=min(H, W)+1
while(r-l>1):
c = (l+r)//2
if solve(c):
l=c
else:
r=c;
print(l)
srjywrdnprkt