題目連接-> OVOios
題解:學習
好久沒有寫博客了,多是由於最近太頹廢了吧。spa
剛剛考完期末考試,無比期盼早點外出學習,不要面對成績,懼怕。code
#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #define N 20007 using namespace std; int n, a[N], maxn[N], minn[N], l, r, ans; bool check(int x) { maxn[1] = minn[1] = a[1]; for(int i = 2; i <= n; i++) maxn[i] = min(a[i], a[1] - minn[i - 1]), minn[i] = max(0, a[i] - (x - a[i - 1] - a[1] + maxn[i - 1])); return !minn[n]; } int main() { scanf("%d", &n); for(int i = 1; i <= n; i++) scanf("%d", &a[i]), l = max(l, a[i] + a[i - 1]); r = l << 1; while(l <= r) { int mid = l + r >> 1; if(check(mid)) ans = mid, r = mid - 1; else l = mid + 1; } printf("%d", ans); return 0; }
一世安寧blog