AcWing 730. 机器人跳跃问题
原题链接
中等
作者:
糖醋拐杖_8
,
2023-11-13 17:32:02
,
所有人可见
,
阅读 38
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
using namespace std;
const int N = 1e5 + 10;
int h[N];
int n;
bool check(int e)
{
for (int i = 1;i <= n;i++)
{
e = 2 * e - h[i];
if ( e < 0 ) return false;
if ( e > 1e5) return true;
}
return true;
}
int main()
{
cin >> n;
for (int i = 1;i <= n;i++) cin >> h[i];
int l = 1, r = 1e5;
while ( l < r)
{
int mid = l + r >> 1;
if ( check(mid) ) r = mid;
else l = mid + 1;
}
cout << l << endl;
return 0;
}