結果

問題 No.2692 How Many Times Reached?
ユーザー Meso Meso
提出日時 2025-09-04 14:20:57
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
AC  
実行時間 35 ms / 2,000 ms
コード長 1,432 bytes
コンパイル時間 293 ms
コンパイル使用メモリ 12,288 KB
実行使用メモリ 10,624 KB
最終ジャッジ日時 2025-09-04 14:21:01
合計ジャッジ時間 3,723 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 43
権限があれば一括ダウンロードができます

ソースコード

diff #

def rows(table, n):
    cnt = 0
    for i in range(n):
        a = table[i].count("A")
        b = table[i].count(".")
        if a == n:
            cnt += 1
        elif a == (n - 1) and b == 1:
            cnt += 1
            
    return cnt

def columns(table, n):
    transposed = []
    for i in range(n):
        new_row = []
        for j in range(n):
            new_row.append(table[j][i])
        transposed.append(new_row)

    cnt = 0
    for i in range(n):
        a = transposed[i].count("A")
        b = transposed[i].count(".")
        if a == n:
            cnt += 1
        elif a == (n - 1) and b == 1:
            cnt += 1

    return cnt

def bottom_right_diagonal(table, n):
    cnt = a = b = 0
    for i in range(n):
        if table[i][i] == "A":
            a += 1
        elif table[i][i] == ".":
            b += 1
    if a == n:
        cnt += 1
    elif a == (n - 1) and b == 1:
        cnt += 1

    return cnt

def bottom_left_diagonal(table, n):
    cnt = a = b = 0
    for i in range(n):
        if table[i][n-i-1] == "A":
            a += 1
        elif table[i][n-i-1] == ".":
            b += 1
    if a == n:
        cnt += 1
    elif a == (n - 1) and b == 1:
        cnt += 1

    return cnt
  
n = int(input())
table = [list(input()) for _ in range(n)]

r = rows(table, n)
c = columns(table, n)
br = bottom_right_diagonal(table, n)
bl = bottom_left_diagonal(table, n)

print(r + c + br + bl)
0