#include <bits/stdc++.h>
using namespace std;
template <class C>
void mini(C& a, C b) {
  a = min(a, b);
}
template <class C>
void maxi(C& a, C b) {
  a = max(a, b);
}
void h() {
  int n;
  cin >> n;
  vector<long long> a(n);
  for (int i = 0; i < n; i++) cin >> a[i];
  vector<pair<long long, long long> > dp(n), dpr(n);
  dp[0] = {0, a[0]};
  for (int(i) = 1; i <= n - 1; i++) {
    dp[i].second = max(a[i], dp[i - 1].second + 1);
    dp[i].first = dp[i - 1].first + max(0ll, dp[i - 1].second + 1 - a[i]);
  }
  reverse(a.begin(), a.end());
  dpr[0] = {0, a[0]};
  for (int(i) = 1; i <= n - 1; i++) {
    dpr[i].second = max(a[i], dpr[i - 1].second + 1);
    dpr[i].first = dpr[i - 1].first + max(0ll, dpr[i - 1].second + 1 - a[i]);
  }
  long long res = 1e18;
  for (int i = 0; i < n - 1; i++) {
    if (dp[i].second != dpr[n - i - 2].second)
      mini(res, dp[i].first + dpr[n - i - 2].first);
    else
      mini(res, dp[i].first + dpr[n - i - 2].first + 1);
  }
  mini(res, dp[n - 1].first);
  mini(res, dpr[n - 1].first);
  cout << res << '\n';
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  h();
  return 0;
}
