結果
問題 | No.3 ビットすごろく |
ユーザー |
![]() |
提出日時 | 2019-10-11 12:16:01 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 61 ms / 5,000 ms |
コード長 | 753 bytes |
コンパイル時間 | 94 ms |
コンパイル使用メモリ | 12,672 KB |
実行使用メモリ | 11,008 KB |
最終ジャッジ日時 | 2024-07-01 09:31:58 |
合計ジャッジ時間 | 2,645 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 33 |
ソースコード
#yukicoder #ビットスゴロク import sys n=int(input()) if n==1: print(1) sys.exit() if n==2: print(2) sys.exit() data=[0]*(n+1) data[2]=1 flag=[0]*(n+1) flag[1]=1 flag[2]=1 que=[[2]] count=2 while que: h=que.pop() H=[] for u in h: data[u]=count cnt=0 for i in range(14): if (u>>i)&1==1: cnt+=1 if u+cnt==n: print(count+1) break if u+cnt<n: if flag[u+cnt]==0: H.append(u+cnt) flag[u+cnt]=1 if flag[u-cnt]==0: H.append(u-cnt) flag[u-cnt]=1 else: if H: que.append(H) count+=1 continue break else: print(-1)