填空题
题号:NC236992
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

    你有一个数组,你需要将数组里面的每一个变成一个正整数,使得整个数组是严格上升的。
    请你输出整个数组的和,如果有多种方法,请输出和最小的值,如果无法变成一个上升的数组,那么输出
    对于整个数组严格上升可理解为对于任意 ()都有

输入描述:

第一行输入一个整数
第二行输入n个整数,其中

输出描述:

输出一个整数代表整个数组的和,如果无法变成一个上升的数组,那么输出
示例1

输入

复制
3
1 0 3

输出

复制
6

说明

我们可以将第一个零改变成,这样数据就变成了
1  2   3
可以发现,他是成单调上升的,并且和最小。
示例2

输入

复制
2
0 1

输出

复制
-1

说明

无论第一个零改变成什么,都无法使他变成严格单调上升的。
示例3

输入

复制
3
0 0 0

输出

复制
6

说明

可以将数组变化成
1 2 3