結果

問題 No.401 数字の渦巻き
コンテスト
ユーザー yomo3
提出日時 2020-02-19 14:55:03
言語 Python3
(3.14.7 + numpy 2.5.2 + scipy 1.18.0 + ACL)
コンパイル:
python3 -mpy_compile _filename_
実行:
python3 _filename_
結果
AC  
実行時間 22 ms / 2,000 ms
+ 286µs
コード長 426 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 61 ms
コンパイル使用メモリ 15,232 KB
実行使用メモリ 11,008 KB
最終ジャッジ日時 2026-09-11 19:02:01
合計ジャッジ時間 2,448 ms
ジャッジサーバーID
(参考情報)
judge2_0 / judge1_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 30
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

N = int(input())

dx = [1, 0, -1, 0]
dy = [0, 1, 0, -1]

dir = 0
x, y = 0, 0
ans = [[None] * N for _ in range(N)]
ans[y][x] = 1
for num in range(2, N*N+1):
    if (x < 0 or N <= x + dx[dir]
     or y < 0 or N <= y + dy[dir]
     or ans[y + dy[dir]][x + dx[dir]] != None):
        dir = (dir + 1) % 4
    x += dx[dir]
    y += dy[dir]
    ans[y][x] = num

for y in range(N):
    print(*['{:03d}'.format(num) for num in ans[y]])
0