题目描述
小兰有 n 个水杯,每个水杯的容量都是 10^100。
现在给出每个水杯中已有的水量,第 i 个水杯中的水量为 a_i。小兰可以给某些水杯倒掉一些水(也可以不倒),使得所有水杯的水量一致。
请问小兰一共最少需要倒掉多少水?
输入格式
第一行一个整数 n。
接下来一行 n 个整数,a_1 ~ a_n。
输出格式
一行一个整数,表示小兰一共最少需要倒掉的水量。
输入数据 1
4 3 1 1 4
输出数据 1
5
样例解释
给四个水杯分别倒掉 2 0 0 3 单位的水即可。
数据规模与约定
对于 100% 的数据,1 ≤ n, a_i ≤ 1000。
子任务 1(30 分):对于 i ≤ n - 1,保证 a_i ≥ a_i+1。
子任务 2(30 分):对于 i ≤ n - 1,保证 a_i ≤ a_i+1。
子任务 3(40 分):没有特殊限制。
下面是AC代码
#include<iostream>
using namespace std;
int main(){
long long n,i,a,x=0,minn=1001;
cin>>n;
for(i=1;i<=n;i++){
cin>>a;
x=x+a;
minn=min(a,minn);
}
cout<<x-n*minn<<endl;
return 0;
}
下面是使用数组做的AC代码
#include <bits/stdc++.h>
using namespace std;
int n,w,m=INT_MAX,a[1005];
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
cin>>n;
for(int i=1;i<=n;++i){
cin>>a[i];
m=min(m,a[i]);
}
for(int i=1;i<=n;++i){
if(m<a[i]){
w+=abs(a[i]-m);
}
}
cout<<w;
return 0;
}
11万+

被折叠的 条评论
为什么被折叠?



