#include<bits/stdc++.h>
using namespace std;
const int MAXN = 2e5 + 5;
#define int long long
int n;
int a[MAXN];
int pre[MAXN];
int suf[MAXN];
int ans_pre[MAXN];
int ans_suf[MAXN];
signed main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> a[i];
}
int last = -1;
for (int i = 1; i <= n; i++)
{
int cur = last + 1;
if (a[i] >= cur)
{
pre[i] = 0;
last = a[i];
}
else
{
pre[i] = cur - a[i];
last = cur;
}
}
last = -1;
for (int i = n; i >= 1; i--)
{
int cur = last + 1;
if (a[i] >= cur)
{
suf[i] = 0;
last = a[i];
}
else
{
suf[i] = cur - a[i];
last = cur;
}
}
for (int i = 1; i <= n; i++)
{
ans_pre[i] = max(ans_pre[i - 1], pre[i]);
}
for (int i = n; i >= 1; i--)
{
ans_suf[i] = max(ans_suf[i + 1], suf[i]);
}
int ans = LLONG_MAX;
for (int i = 1; i < n; i++)
{
ans = min(ans, ans_pre[i - 1] + ans_suf[i]);
}
cout << ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |