题目:1235. 付账问题
思路:大佬思路
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<double,double>PII;
const int N=5e5+10;
const int mod=100000007;
int n;
LL s;
int a[N];
int main(){
cin>>n>>s;
for(int i=0;i<n;i++){
cin>>a[i];
}
double avg=s*1.0/n;
double t=avg;
sort(a,a+n);
int k=0;
double sum=0;
while(1){
if(a[k]<=t){
s-=a[k];
sum+=(a[k]-avg)*(a[k]-avg);
t=s*1.0/(n-k-1);
k++;
}else{
sum+=(t-avg)*(t-avg)*(n-k);
break;
}
}
printf("%.4f",sqrt(sum/n));
return 0;
}