結果

問題 No.3 ビットすごろく
コンテスト
ユーザー qlt
提出日時 2025-10-25 01:18:31
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 806 bytes
コンパイル時間 231 ms
コンパイル使用メモリ 82,584 KB
実行使用メモリ 82,468 KB
最終ジャッジ日時 2025-10-25 01:19:01
合計ジャッジ時間 25,458 ms
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 32 WA * 1
権限があれば一括ダウンロードができます

ソースコード

diff #

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:
    print(-1)
0