結果
問題 |
No.2456 Stamp Art
|
ユーザー |
👑 |
提出日時 | 2023-08-20 09:57:55 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 2,463 ms / 5,000 ms |
コード長 | 652 bytes |
コンパイル時間 | 406 ms |
コンパイル使用メモリ | 82,348 KB |
実行使用メモリ | 360,484 KB |
最終ジャッジ日時 | 2024-06-11 17:55:32 |
合計ジャッジ時間 | 25,729 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 23 |
ソースコード
I,R=input,range H,W=map(int,I().split()) X,Y=R(W),R(H) S=[[s<'.'for s in I()]for i in Y] C=[[0]*(W+1)for i in R(H+1)] c=[0]*(W+1) for i in Y: t=0 for j in X:C[i+1][j+1],t=c[j+1]+t+S[i][j],t+S[i][j] c=C[i+1][:] def r(k): D=[[0]*(W+1)for i in R(H+1)] for i in R(H-k+1): for j in R(W-k+1): if C[i+k][j+k]-C[i+k][j]-C[i][j+k]+C[i][j]==k*k:D[i+k][j+k],D[i+k][j],D[i][j+k],D[i][j]=D[i+k][j+k]+1,D[i+k][j]-1,D[i][j+k]-1,D[i][j]+1 c=[0]*W for i in Y: t=0 for j in X:D[i][j],t=c[j]+t+D[i][j],t+D[i][j] if any(S[i][j]>D[i][j]for j in X):return 1 c=D[i][:] return 0 A=[1,min(H,W)+1] while A[0]+1<A[1]: k=(A[0]+A[1])//2 A[r(k)]=k print(A[0])