#include <bits/stdc++.h>
using namespace std;
static const long long INF = -1e18;
static const int MAXN = 3e5 + 5;
int n;
long long a[MAXN];
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> n;
a[0] = a[n + 1] = INF;
for (int i = 1; i <= n; i++) cin >> a[i];
int l = 0, r = n + 1;
long long ans = 0;
while (l + 1 < r) {
if (l + 2 == r) {
long long x = max(0LL, a[l] - a[l + 1] + 1);
long long y = max(0LL, a[r] - a[r - 1] + 1);
long long add = min(x, y);
a[l + 1] += add;
ans += add;
if (a[l + 1] == a[l] || a[l + 1] == a[r]) ans++;
break;
}
if (a[l + 1] > a[l]) {
++l;
if (l + 2 < r) a[l + 1] += ans;
continue;
}
if (a[r - 1] > a[r]) {
--r;
if (l + 2 < r) a[r - 1] += ans;
continue;
}
long long add = min(
a[l] - a[l + 1] + 1,
a[r] - a[r - 1] + 1
);
ans += add;
a[l + 1] += add;
a[r - 1] += add;
}
cout << ans << '\n';
}