結果
問題 |
No.3 ビットすごろく
|
ユーザー |
![]() |
提出日時 | 2018-01-31 21:43:33 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
TLE
|
実行時間 | - |
コード長 | 603 bytes |
コンパイル時間 | 319 ms |
コンパイル使用メモリ | 12,544 KB |
実行使用メモリ | 74,168 KB |
最終ジャッジ日時 | 2024-12-29 23:58:55 |
合計ジャッジ時間 | 170,207 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 5 TLE * 28 |
ソースコード
nin = int(input()) mark = 100000 queue = [] bitlis = [] for i in range(1,nin+1): bit = 0 for item in list(str(bin(i))): if item == "1": bit += 1 bitlis.append(bit) def dps(n,m=1,lis=[]): xlis = lis.copy() xlis.append(n) if n == nin: global mark mark = min(m,len(xlis)) return for item in [n+bitlis[n-1],n-bitlis[n-1]]: if item < 1 or item > nin: continue else: if not item in xlis: queue.append((item,m+1,xlis)) dps(1) while queue: Tp = queue.pop() dps(Tp[0],Tp[1],Tp[2]) if mark != 100000: print(mark) else: print(-1)