P1223 排队接水

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  } 

 

posted @ 2020-07-22 18:20  TFLSNOI  阅读(344)  评论(0编辑  收藏  举报