← Home
write a go solution for Description:
You went to the store, selling n types of chocolates. There are a_i chocolates of type i in stock.

You have unlimited amount of cash (so you are not restricted by any prices) and want to buy as many chocolates as possible. However if you buy x_i chocolates of type i (clearly, 0<=x_i<=a_i), then for all 1<=j<i at least one of the following must hold:

- x_j=0 (you bought zero chocolates of type j)
- x_j<x_i (you bought less chocolates of type j than of type i)

For example, the array x=[0,0,1,2,10] satisfies the requirement above (assuming that all a_i>=x_i), while arrays x=[0,1,0], x=[5,5] and x=[3,2] don't.

Calculate the maximum number of chocolates you can buy.

Input Format:
The first line contains an integer n (1<=n<=2*10^5), denoting the number of types of chocolate.

The next line contains n integers a_i (1<=a_i<=10^9), denoting the number of chocolates of each type.

Output Format:
Print the maximum number of chocolates you can buy.

Note:
In the first example, it is optimal to buy: 0+0+1+3+6 chocolates.

In the second example, it is optimal to buy: 1+2+3+4+10 chocolates.

In the third example, it is optimal to buy: 0+0+0+1 chocolates.. Output only the code with no comments, explanation, or additional text.