原题:
题目描述
芳芳特喜欢数列,有一天,芳芳发现了这样一个问题,给一个n个数的序列,可以进行这样一次操作,对区间[L,R]上的数字集体+1(1<=L<=R<=n),最少操作多少次,使得整个序列变为单调不下降序列。
如 3 2 1 -> 3 3 2 -> 3 3 3最少2次操作。
无所不能的芳芳觉得太简单了,你能解决吗?
输入
多组数据。输入一个n,接下来有n个数字。(1<=n<=10000,这些数字不会超int)
输出
每组输出一个数字,最小的操作数。
示例输入
3 1 2 3 3 3 2 1 4 7 4 1 47
示例输出
0 2 6
原码:
#include<stdio.h> int main() { int a[10005],n,sum; while(scanf("%d",&n)!=EOF) { sum=0; for(int i=0; i<n; i++) { scanf("%d",&a[i]); } for(int i=n-1; i>0; i--) { if(a[i]<a[i-1]) sum+=a[i-1]-a[i]; } printf("%d\n",sum); } return 0; }
转载于:https://blog.51cto.com/bingsanchun/1271419