可以改变把一串数字中的某个数变成5,直到平均数四舍五入达到了5
贪心的想法,最先改变最小的数字,平均值上升的越快,所以先排序,挨个修改算平均值,O(nlog(n)) 解决
#include <bits/stdc++.h>
using namespace std;
int a[20000];
int main(){
int n;
cin >> n;
double sum = 0;
for (int i=0; i<n; i++) {
cin >> a[i];
sum += a[i];
}
double ave = sum/n;
ave = floor(ave + 0.5);
sort(a, a+n);
int cnt = 0;
for (int i=0; i<n; i++) {
if (ave == 5) {
break;
}else{
sum = sum - a[i] + 5;
ave = (sum)/n;
ave = floor(ave + 0.5);
cnt++;
}
}
cout << cnt << endl;
}