結果
| 問題 |
No.3 ビットすごろく
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2015-05-31 17:15:23 |
| 言語 | Python2 (2.7.18) |
| 結果 |
AC
|
| 実行時間 | 70 ms / 5,000 ms |
| コード長 | 486 bytes |
| コンパイル時間 | 88 ms |
| コンパイル使用メモリ | 7,040 KB |
| 実行使用メモリ | 7,424 KB |
| 最終ジャッジ日時 | 2024-07-01 07:22:58 |
| 合計ジャッジ時間 | 2,170 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 33 |
ソースコード
def ones(m):
return bin(m).count('1')
def expand(m, n):
dm = ones(m)
ms = [m - dm, m + dm]
return [m for m in ms if 0 < m <= n]
def bfs(frontier, visited, n):
while frontier:
path = frontier.pop(0)
last = path[-1]
if last == n:
return path
elif last not in visited:
visited.add(last)
for m in expand(last, n):
frontier.append(path + [m])
n = int(raw_input())
path = bfs([[1]], set(), n)
if path:
print len(path)
else:
print -1