結果
問題 | No.2641 draw X |
ユーザー |
![]() |
提出日時 | 2024-02-19 22:19:54 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 721 ms / 2,000 ms |
コード長 | 3,305 bytes |
コンパイル時間 | 266 ms |
コンパイル使用メモリ | 82,620 KB |
実行使用メモリ | 133,684 KB |
最終ジャッジ日時 | 2024-09-29 02:14:53 |
合計ジャッジ時間 | 12,171 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 41 |
ソースコード
H,W=map(int,input().split())S=[list(input()) for _ in range(H)]D=[[10**18]*W for _ in range(H)]for i in range(H):c=0for j in range(W):if i+j>=H:breakif S[i+j][j]=='#':c+=1else:c=0D[i+j][j]=min(D[i+j][j],c)for j in range(W):c=0for i in range(H):if i+j>=W:breakif S[i][i+j]=='#':c+=1else:c=0D[i][i+j]=min(D[i][i+j],c)for i in range(H):c=0for j in range(W):if i-j<0:breakif S[i-j][W-j-1]=='#':c+=1else:c=0D[i-j][W-j-1]=min(D[i-j][W-j-1],c)for j in range(W):c=0for i in range(H):if j-i<0:breakif S[H-i-1][j-i]=='#':c+=1else:c=0D[H-i-1][j-i]=min(D[H-i-1][j-i],c)for i in range(H):c=0for j in range(W):if i+j>=H:breakif S[i+j][W-j-1]=='#':c+=1else:c=0D[i+j][W-j-1]=min(D[i+j][W-j-1],c)for j in range(W):c=0for i in range(H):if i+j>=W:breakif S[H-i-1][i+j]=='#':c+=1else:c=0D[H-i-1][i+j]=min(D[H-i-1][i+j],c)for i in range(H):c=0for j in range(W):if i-j<0:breakif S[i-j][j]=='#':c+=1else:c=0D[i-j][j]=min(D[i-j][j],c)for j in range(W):c=0for i in range(H):if j-i<0:breakif S[i][j-i]=='#':c+=1else:c=0D[i][j-i]=min(D[i][j-i],c)for i in range(H):for j in range(W):if D[i][j]==1:D[i][j]=0T=[['.']*W for _ in range(H)]for i in range(H):c=0for j in range(W):if i+j>=H:breakc=max(c,D[i+j][j])if c>0:T[i+j][j]='#'c-=1for j in range(W):c=0for i in range(H):if i+j>=W:breakc=max(c,D[i][i+j])if c>0:T[i][i+j]='#'c-=1for i in range(H):c=0for j in range(W):if i-j<0:breakc=max(c,D[i-j][W-j-1])if c>0:T[i-j][W-j-1]='#'c-=1for j in range(W):c=0for i in range(H):if j-i<0:breakc=max(c,D[H-i-1][j-i])if c>0:T[H-i-1][j-i]='#'c-=1for i in range(H):c=0for j in range(W):if i+j>=H:breakc=max(c,D[i+j][W-j-1])if c>0:T[i+j][W-j-1]='#'c-=1for j in range(W):c=0for i in range(H):if i+j>=W:breakc=max(c,D[H-i-1][i+j])if c>0:T[H-i-1][i+j]='#'c-=1for i in range(H):c=0for j in range(W):if i-j<0:breakc=max(c,D[i-j][j])if c>0:T[i-j][j]='#'c-=1for j in range(W):c=0for i in range(H):if j-i<0:breakc=max(c,D[i][j-i])if c>0:T[i][j-i]='#'c-=1if S==T:print('Yes')else:print('No')