CF1392C题解
CF1392C题解
分析
根据题意可得:设任意一个一个正整数 \(i\)(\(n\geq i\))要是 \(a[i]<a[i-1]\) 则这两个数至少需要操作 \(a[i-1]-a[i]\) 次。
换一句话说,每组数据的答案为所有前一个数大于后一个数的前一个数减后一个数。(就是上面的字母表示)
话不多说,上代码!!!
#include<bits/stdc++.h>
#define ll long long//懒人必备
using namespace std;
ll n,T,ans,a[300005];
int main(){
cin>>T;//T组数据
while(T--){//循环输入T组数据
cin>>n;
ans=0;//每组数据的答案清零
for(ll i=1; i<=n; i++) cin>>a[i];
for(ll i=1; i<=n; i++) if(a[i]<a[i-1]) ans+=a[i-1]-a[i];//如果后一个小于前一个,则要多做(前一个减后一个的差)次
cout<<ans<<endl;
}
return 0;//养成好习惯
}
//完结撒花✿✿ヽ(°▽°)ノ✿