【题目描述】Saber喜欢吃苹果。现在Saber有n箱苹果。第一个箱子里有a1个苹果,第二箱有a2个,第三箱有a3个一直到an。Saber是个吃货,但也是个爱美的女生。n箱苹果需要满足下面的条件才会看起来更好看:第一点就是每个箱子都不能空。第二点就是苹果数量应该是递增的。也就是说,第一个箱子的苹果数少于第二个箱子,第二箱的苹果少于第三箱,第三箱少于第四箱,依此类推。Saber今天有些饱,所以想通过吃尽量少的苹果同时满足以上两个要求而使箱子看上去更美。请你输出Saber吃掉的最少的苹果数量。如果她无法完成心愿就输出-1吧。
【输入格式】两行第一行一个整数n,表示有n箱苹果第二行n个整数,表示每一箱里面苹果的数量
【输出格式】一行一个整数,-1表示不能实现,正整数表示要吃掉的最少苹果数量。
问题分析:要满足递增条件,只能减少元素值,且要减少的最少,那么关键点是:最后一箱的数量是不动的,否则就不是减少的最少。然后以最后一箱为基准,如果前面一箱数量多余后面箱的数量,则将该箱数量减为后面一箱数量减去1,得到差值即为要吃掉的苹果树。如此类推完成所有箱的处理即可。
C++
#include <iostream>
using namespace std;
int main()
{
int a[1000];
int n,i,count=0,d=0;
cin>>n;
for(i=0;i<n;i++)
cin>>a[i];
for(i=n-1;i>0;i--)
{
if(a[i-1] >= a[i])
{
d &#