[AtCoder][ABC][競プロ]ABC-258 B-Number Box

colorful mailboxes on wooden wall near door and plant AtCoder
Photo by Jill Burrow on Pexels.com

問題

B - Number Box
AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online.
問題キャプチャ。

方針

\(N\)が小さいので全検索で。迷路の問題などで

    for i, j in zip([0, 1, 1, 1, 0, -1, -1, -1], [1, 1, 0, -1, -1, -1, 0, 1]):

などとやったことを思い出す。これは下の図のように縦横斜め\(8\)方向の動きに対応する。

縦横斜め\(8\)方向への動き。

解答

#atcoder template
def main():
    import sys
    input = sys.stdin.readline
    #文字列入力の時は上記はerrorとなる。
    #ここにコード
    #input
    n = int(input())
    a = [[]*n for _ in range(n)]

    for i in range(n):
        a[i] = list(str(input()))

    M = 0

    for i, j in zip([0, 1, 1, 1, 0, -1, -1, -1], [1, 1, 0, -1, -1, -1, 0, 1]):
        for x in range(n):
            for y in range(n):
                temp_list = ""
                temp_list += a[x][y]
                for k in range(n-1):
                    x += i
                    x %= n
                    y += j
                    y %= n
                    temp_list += a[x][y]
                    M = max(M, int(temp_list))
                    
    print(M)

    #N = 1のときなどcorner caseを確認!
if __name__ == "__main__":
    main()

提出結果

Submission #33011480 - AtCoder Beginner Contest 258
AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online.

感想

何これ難しい\(\cdots\)。これでB問題なのか\(\cdots\)

関連問題

ABC 051 C-Back and Forth

関連リンク

AtCoder
AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online.

コメント

タイトルとURLをコピーしました