結果
| 問題 |
No.401 数字の渦巻き
|
| コンテスト | |
| ユーザー |
学ぶマン
|
| 提出日時 | 2025-09-02 20:40:57 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 47 ms / 2,000 ms |
| コード長 | 636 bytes |
| コンパイル時間 | 363 ms |
| コンパイル使用メモリ | 82,380 KB |
| 実行使用メモリ | 60,436 KB |
| 最終ジャッジ日時 | 2025-09-02 20:41:01 |
| 合計ジャッジ時間 | 3,211 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 30 |
ソースコード
N = int(input())
ans = [['a'] * (N) for _ in range(N)]
def check(t):
i, j = t
return 0 <= i < N and 0 <= j < N
def tashi(t1, t2):
return (t1[0] + t2[0], t1[1] + t2[1])
# 前が 'a' なら進む
# そうでないなら 右に90度回転する(key +1 して %4)
key = 0
vec = [
(0, 1),
(1, 0),
(0, -1),
(-1, 0)
]
i, j = 0, 0
for num in range(1, N*N + 1):
ans[i][j] = str(num).zfill(3)
nex = tashi((i, j), vec[key])
if check(nex) and ans[nex[0]][nex[1]] == 'a':
i, j = nex
else:
key += 1
key %= 4
i, j = tashi((i, j), vec[key])
for a in ans:
print(*a)
学ぶマン