結果
| 問題 |
No.640 76本のトロンボーン
|
| コンテスト | |
| ユーザー |
tktk_snsn
|
| 提出日時 | 2020-12-16 20:11:34 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 49 ms / 2,000 ms |
| コード長 | 1,125 bytes |
| コンパイル時間 | 506 ms |
| コンパイル使用メモリ | 82,340 KB |
| 実行使用メモリ | 64,820 KB |
| 最終ジャッジ日時 | 2025-04-23 01:12:07 |
| 合計ジャッジ時間 | 2,312 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 15 |
ソースコード
import sys
input = sys.stdin.readline
sys.setrecursionlimit(10 ** 7)
n = int(input())
S = [list(input().rstrip()) for _ in range(n)]
blank = "." * (n - 1)
def rot(A):
n, m = len(A), len(A[0])
res = [[0] * n for _ in range(m)]
for i in range(n):
for j in range(m):
res[j][n - i - 1] = A[i][j]
return res
def count():
res = 0
for i in range(1, n - 1):
res += int("".join(S[i][:n-1]) == blank)
a0 = int("".join(S[0][:n-1]) == blank)
a1 = int("".join(S[0][1:]) == blank)
b0 = int("".join(S[-1][:n-1]) == blank)
b1 = int("".join(S[-1][1:]) == blank)
c0 = int(all(S[i][-1] == "." for i in range(n - 1)))
c1 = int(all(S[i][-1] == "." for i in range(1, n)))
tmp = a0 + b0 + max(c0, c1)
tmp = max(tmp, a0 + b1 + c0)
tmp = max(tmp, a1 + b0 + c1)
tmp = max(tmp, a1 + b1)
return res + tmp
ans = 0
for _ in range(4):
ans = max(ans, count())
S = rot(S)
ng = 0
for i in range(n):
ng |= S[0][i] == "#"
ng |= S[i][0] == "#"
ng |= S[-1][i] == "#"
ng |= S[i][-1] == "#"
if not ng:
ans = max(ans, 4)
print(ans)
tktk_snsn