結果
問題 |
No.3 ビットすごろく
|
ユーザー |
![]() |
提出日時 | 2019-04-26 10:05:34 |
言語 | Python2 (2.7.18) |
結果 |
AC
|
実行時間 | 42 ms / 5,000 ms |
コード長 | 614 bytes |
コンパイル時間 | 195 ms |
コンパイル使用メモリ | 7,196 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-07-01 09:19:07 |
合計ジャッジ時間 | 1,986 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 33 |
ソースコード
def countbit(n): m = n cnt = 0 while m != 0: if m % 2 == 1: cnt += 1 m = m / 2 return cnt N = int(raw_input()) passed = [False] board = [-1] for i in range(0, N): passed.append(True) board.append(-1) queue = [[1, 1, passed]] while queue != []: now = queue.pop(0) newpassed = now[2] if now[2][now[0]]: newpassed[now[0]] = False move = countbit(now[0]) if board[now[0]] == -1 or board[now[0]] > now[1]: board[now[0]] = now[1] if now[0] + move <= N: queue.append([now[0]+move, now[1]+1, newpassed]) if now[0] - move >= 1: queue.append([now[0]-move, now[1]+1, newpassed]) print board[N]