#include //#include //using namespace atcoder; using namespace std; using ll = long long; using vll = vector; using vvll = vector; using vvvll = vector; using vb = vector; using vvb = vector; using vvvb = vector; using vd = vector; using vvd = vector; using vvvd = vector; #define all(A) A.begin(),A.end() #define rep(i, n) for (ll i = 0; i < (ll) (n); i++) using pqr = priority_queue, vector>, greater>>; template bool chmax(T& p, T q) { if (p < q) { p = q; return 1; } else { return 0; } } template bool chmin(T& p, T q) { if (p > q) { p = q; return 1; } else { return 0; } } ll gcd(ll(a), ll(b)) { ll c = a; while (a % b != 0) { c = a % b; a = b; b = c; } return b; } int main() { cin.tie(nullptr); ios::sync_with_stdio(false); int N; cin>>N; int an=0; int Z=0,F=0; rep(i,N){ int B;cin>>B; if(B==0){ if(Z!=0){ Z--; an+=i; } else{ F++; an-=i; } } else if(B>1){ rep(j,B-1){ if(F!=0){ F--; an+=i; } else{ Z++; an-=i; } } } } cout<