結果
問題 |
No.1286 Stone Skipping
|
ユーザー |
|
提出日時 | 2021-06-15 13:33:16 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 66 ms / 2,000 ms |
コード長 | 539 bytes |
コンパイル時間 | 534 ms |
コンパイル使用メモリ | 81,536 KB |
実行使用メモリ | 62,208 KB |
最終ジャッジ日時 | 2024-12-26 12:47:31 |
合計ジャッジ時間 | 3,763 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 26 |
ソースコード
d=int(input()) """ 最後の飛距離は1 最後から2回目は2,3 最後から3回目は4,5,6,7 最後から4回目は8~15 最後からi回目は[2**(i-1),2**2) 答えはd/2以上d以下 跳ねる回数で場合分け 跳ねる回数最大60回ぐらい """ ans=d for i in range(1,64): def func(x): # x始まりでi回跳ねる場合の飛距離 tmp=0 for _ in range(i): tmp+=x x//=2 return tmp l,r=0,d while r-l>1: x=(l+r)//2 if d<func(x): l,r=l,x else: l,r=x,r if func(l)==d: ans=min(ans,l) print(ans)