結果
問題 |
No.1286 Stone Skipping
|
ユーザー |
|
提出日時 | 2021-02-02 23:22:50 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 873 bytes |
コンパイル時間 | 1,541 ms |
コンパイル使用メモリ | 165,216 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-06-29 23:57:19 |
合計ジャッジ時間 | 2,408 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 26 |
ソースコード
#include<bits/stdc++.h> // #include<atcoder/all> using namespace std; // using namespace atcoder; using lint = long long; using graph = vector<vector<int>>; #define endl '\n' lint const mod = 1e9+7; //long const mod = 998244353; int main(){ lint d; cin >> d; lint ans = d; for(int rep=1;rep<80;rep++){ lint upper = d; lint lower = 1; while(upper > lower){ lint mid = (upper + lower)/ 2; lint tmp = mid; lint kyori = mid; for(int i=0;i<rep;i++){ tmp += (kyori/2); kyori/=2; } if(tmp == d){ ans = min(ans,mid); break; } if(tmp > d){ upper = mid ; }else{ lower = mid + 1; } } } cout << ans << endl; }