#include <iostream>
#include <algorithm>
#include <iomanip>
#include <vector>
#include <map>
#include <set>
#include <utility>
#include <cmath>
#include <queue>
#include <stack>
#include <cstring>
#include <string>

using namespace std;

long long a[100007],balls;
long long workingNumber, lastNumber, indexMinus, prise;

int main() {
    cin>>balls;
    for(int i=1;i<=balls;i++) cin>>a[i];

    for(long long i=balls;i>=1;i--){
        //cout<<a[i]<<" "; //где ящик стоял
        
        lastNumber=a[i];
        
        if(a[i]!=a[balls]){
            if(a[i]!=workingNumber) a[i]-=indexMinus;
            
            else a[i]=a[i+1];
            
            if(a[i]<1) break;
        }
        
        workingNumber=lastNumber;
        
        //cout<<a[i]<<" "; //где он стоит после операций
        
        prise+=a[i];
        indexMinus++;
        
        //cout<<prise<<endl; //какая цена за него
        //cout<<endl;
    }
    //cout<<endl;
    cout<<prise<<endl;
    return 0;
}
