結果
| 問題 |
No.3 ビットすごろく
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2025-10-25 01:21:05 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 2,147 ms / 5,000 ms |
| コード長 | 852 bytes |
| コンパイル時間 | 368 ms |
| コンパイル使用メモリ | 82,984 KB |
| 実行使用メモリ | 82,296 KB |
| 最終ジャッジ日時 | 2025-10-25 01:21:34 |
| 合計ジャッジ時間 | 27,674 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 33 |
ソースコード
N = int(input())
stack = []
ceil_dist = dict()
answer = 1000000
for j in range(1, 10001):
ceil_dist[j] = 1000000
stack.append([1, 1])
ok_flag = False
while stack:
ceil = stack.pop()
turn = ceil[0]
now = ceil[1]
dice = 0
for j in range(14):
if (now >> j) & 1 == 1:
dice += 1
f_now = now + dice
p_now = now - dice
if (f_now <= N) and (turn + 1 < ceil_dist[f_now]):
stack.append([turn + 1, f_now])
ceil_dist[f_now] = turn + 1
if f_now == N:
if turn + 1 < answer:
answer = turn + 1
ok_flag = True
if (p_now >= 1) and (turn + 1 < ceil_dist[p_now]):
stack.append([turn + 1, p_now])
ceil_dist[p_now] = turn + 1
if ok_flag:
print(answer)
else:
if N == 1:
print(1)
else:
print(-1)