結果
| 問題 | 
                            No.640 76本のトロンボーン
                             | 
                    
| コンテスト | |
| ユーザー | 
                             titia
                         | 
                    
| 提出日時 | 2024-06-27 02:28:50 | 
| 言語 | PyPy3  (7.3.15)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 89 ms / 2,000 ms | 
| コード長 | 2,613 bytes | 
| コンパイル時間 | 432 ms | 
| コンパイル使用メモリ | 82,088 KB | 
| 実行使用メモリ | 74,816 KB | 
| 最終ジャッジ日時 | 2024-06-27 02:28:54 | 
| 合計ジャッジ時間 | 2,037 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge1 / judge5 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 2 | 
| other | AC * 15 | 
ソースコード
import sys
input = sys.stdin.readline
N=int(input())
MAP=[list(input().strip()) for i in range(N)]
flag=1
for i in range(N):
    if MAP[0][i]=="#":
        flag=0
    if MAP[0][N-1]=="#":
        flag=0
    if MAP[i][0]=="#":
        flag=0
    if MAP[N-1][0]=="#":
        flag=0
if flag==1:
    ANS=4
else:
    ANS=0
for ix in range(N):
    if not ("#" in MAP[ix][0:N-1]):
        for j in range(N-1):
            MAP[ix][j]="#"
        score=1
        for j in range(N):
            x=0
            for i in range(N):
                if MAP[i][j]==".":
                    x+=1
                else:
                    x=0
                if x>=N-1:
                    score+=1
                    break
        ANS=max(ANS,score)
        for j in range(N-1):
            MAP[ix][j]="."
    if not ("#" in MAP[ix][1:N]):
        for j in range(1,N):
            MAP[ix][j]="#"
        score=1
        for j in range(N):
            x=0
            for i in range(N):
                if MAP[i][j]==".":
                    x+=1
                else:
                    x=0
                if x>=N-1:
                    score+=1
                    break
        ANS=max(ANS,score)
        for j in range(1,N):
            MAP[ix][j]="."
score=0
for i in range(N):
    if not ("#" in MAP[i][1:N]) or not ("#" in MAP[i][0:N-1]):
        score+=1
ANS=max(ANS,score)
MAP2=[["."]*N for i in range(N)]
for i in range(N):
    for j in range(N):
        if MAP[i][j]=="#":
            MAP2[N-1-j][i]="#"
MAP=MAP2
for ix in range(N):
    if not ("#" in MAP[ix][0:N-1]):
        for j in range(N-1):
            MAP[ix][j]="#"
        score=1
        for j in range(N):
            x=0
            for i in range(N):
                if MAP[i][j]==".":
                    x+=1
                else:
                    x=0
                if x>=N-1:
                    score+=1
                    break
        ANS=max(ANS,score)
        for j in range(N-1):
            MAP[ix][j]="."
    if not ("#" in MAP[ix][1:N]):
        for j in range(1,N):
            MAP[ix][j]="#"
        score=1
        for j in range(N):
            x=0
            for i in range(N):
                if MAP[i][j]==".":
                    x+=1
                else:
                    x=0
                if x>=N-1:
                    score+=1
                    break
        ANS=max(ANS,score)
        for j in range(1,N):
            MAP[ix][j]="."
score=0
for i in range(N):
    if not ("#" in MAP[i][1:N]) or not ("#" in MAP[i][0:N-1]):
        score+=1
ANS=max(ANS,score)
print(ANS)
            
            
            
        
            
titia