結果
| 問題 | No.3 ビットすごろく |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2023-01-03 16:27:10 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
AC
|
| 実行時間 | 2,123 ms / 5,000 ms |
| コード長 | 556 bytes |
| 記録 | |
| コンパイル時間 | 231 ms |
| コンパイル使用メモリ | 84,992 KB |
| 実行使用メモリ | 81,280 KB |
| 最終ジャッジ日時 | 2026-05-21 08:47:18 |
| 合計ジャッジ時間 | 30,731 ms |
|
ジャッジサーバーID (参考情報) |
judge1_0 / judge2_1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 33 |
ソースコード
N = int(input())
p = [[] for i in range(N + 1)]
done = [99999] * (N + 1)
done[1] = 1
que = [1]
while que != []:
x = que.pop(-1)
one = bin(x).count("1")
fwd = x + one
bak = x - one
if 0 < fwd <= N:
if done[fwd] > done[x] + 1:
found = True
done[fwd] = done[x] + 1
que.append(fwd)
if 0 < bak <= N:
if done[bak] > done[x] + 1:
found = True
done[bak] = done[x] + 1
que.append(bak)
if done[N] == 99999:
print(-1)
else:
print(done[N])