結果
| 問題 | No.3 ビットすごろく |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2021-07-04 11:49:26 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 59 ms / 5,000 ms |
| コード長 | 514 bytes |
| コンパイル時間 | 145 ms |
| コンパイル使用メモリ | 82,144 KB |
| 実行使用メモリ | 70,372 KB |
| 最終ジャッジ日時 | 2024-07-01 01:12:59 |
| 合計ジャッジ時間 | 2,932 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 33 |
ソースコード
N = int(input())
went = []
l = [(1, 1)]
visited = {}
while(l):
now, cost = l.pop(0)
if now == N:
print(cost)
exit()
bit_count = bin(now)[2:].count('1')
forwarded = now + bit_count
if forwarded <= N and not forwarded in visited:
visited[forwarded] = True
l.append((forwarded, cost + 1))
backwarded = now - bit_count
if 0 < backwarded and not backwarded in visited:
visited[backwarded] = True
l.append((backwarded, cost + 1))
print(-1)