https://www.luogu.com.cn/problem/P1223
1 #include<bits/stdc++.h> 2 using namespace std; 3 int n; 4 struct t{ //定义结构体存放等待时间和排队编号 5 int w, no; 6 }; 7 t a[1005]; //存放n 个人 的数据 8 bool cmp(t x, t y){ //定义排序规则:按等待时间从小到大排序 9 return x.w<y.w; 10 } 11 long long sum; //存放所有人的等待时间 12 double ans;//存放答案 13 int main() 14 { 15 cin>>n; 16 for(int i=1; i<=n; i++) 17 cin>>a[i].w, a[i].no=i; //输入等待时间,记录编号 18 sort(a+1,a+1+n,cmp); //按等待时间从小到大排序 19 for(int i=1; i<=n; i++){ 20 cout<<a[i].no<<" "; //输出排队接水顺序 21 sum+=(n-i)*a[i].w; //后面每个人的排队等待时间 22 } 23 cout<<endl; 24 cout<<fixed<<setprecision(2)<<sum*1.0/n; //输出答案平均等待时间 25 return 0; 26 }