結果
| 問題 |
No.1286 Stone Skipping
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2022-02-20 11:51:39 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 2,000 ms |
| コード長 | 517 bytes |
| コンパイル時間 | 1,493 ms |
| コンパイル使用メモリ | 165,908 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-06-29 10:45:59 |
| 合計ジャッジ時間 | 2,343 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 26 |
コンパイルメッセージ
main.cpp:16:20: warning: integer constant is too large for its type
16 | long long answer=9999999999999999999999999999;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
ソースコード
#include <bits/stdc++.h>
using namespace std;
long long F(long long X,long long K){
long long sum = 0;
while (K>0)
{
sum += X;
X /= 2;
K--;
}
return sum;
}
int main(){
long long D;
cin>>D;
long long answer=9999999999999999999999999999;
for (long long i = 0; i <= log2(D) + 1; i++)
{
long long le = 0, ri = D;
while (ri - le > 1)
{
long long mid = (le + ri) / 2;
if(F(mid, i) >= D)ri=mid;
else le=mid;
}
if (F(ri, i) == D)
answer = min(answer, ri);
}
cout<<answer;
}