結果
問題 |
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)