結果

問題 No.401 数字の渦巻き
コンテスト
ユーザー htkb
提出日時 2018-05-28 22:02:51
言語 Python3
(3.14.3 + numpy 2.4.4 + scipy 1.17.1)
コンパイル:
python3 -mpy_compile _filename_
実行:
python3 _filename_
結果
AC  
実行時間 96 ms / 2,000 ms
コード長 396 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 780 ms
コンパイル使用メモリ 20,824 KB
実行使用メモリ 15,488 KB
最終ジャッジ日時 2026-03-20 02:36:30
合計ジャッジ時間 4,864 ms
ジャッジサーバーID
(参考情報)
judge2_0 / judge3_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 30
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

from itertools import cycle

N = int(input())
a = [[1]*(N+2)] + [[1]+[0]*N+[1] for _ in [0]*N] + [[1]*(N+2)]

direction = cycle(((1, 0), (0, 1), (-1, 0), (0, -1)))
x, y, dirx, diry = 1, 1, 0, 0

for i in range(1, N**2+1):
    if a[y+diry][x+dirx] != 0:
        dirx, diry = next(direction)
    x, y = x+dirx, y+diry
    a[y][x] = "{:03d}".format(i)

for l in a[1:-1]:
    print(" ".join(l[1:-1]))
0