結果
| 問題 | 
                            No.3 ビットすごろく
                             | 
                    
| コンテスト | |
| ユーザー | 
                             MtBotO
                         | 
                    
| 提出日時 | 2017-09-18 19:11:41 | 
| 言語 | Python3  (3.13.1 + numpy 2.2.1 + scipy 1.14.1)  | 
                    
| 結果 | 
                             
                                RE
                                 
                             
                            
                         | 
                    
| 実行時間 | - | 
| コード長 | 888 bytes | 
| コンパイル時間 | 443 ms | 
| コンパイル使用メモリ | 12,544 KB | 
| 実行使用メモリ | 11,264 KB | 
| 最終ジャッジ日時 | 2024-11-08 02:35:51 | 
| 合計ジャッジ時間 | 10,377 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge4 / judge2 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 3 WA * 19 RE * 11 | 
ソースコード
def main():
    N = int(input())
    # 探索位置情報格納用
    p = [[1,1]]
    # 既に訪れた位置格納
    visited = [1]
    while True:
        # 現在位置を取得
        data = p.pop()
        point = data[0]
        cnt = data[1] + 1
        # 移動距離
        v = bin(point).count("1")
        # 前方移動位置
        f_point = point + v
        # 後方移動位置
        b_point = point - v
        # 目的位置に移動したかチェック
        if f_point == N or b_point == N :
            print(cnt)
            exit()
        # 位置を記憶
        if f_point < N and  not(f_point in visited):
            p.append([f_point,cnt])
            visited.append(f_point)
        if b_point > 0 and  not(b_point in visited):
            p.append([b_point,cnt])
            visited.append(b_point)
if __name__ == "__main__":
    main()
            
            
            
        
            
MtBotO