参考网址
https://www.luogu.com.cn/problem/P1223
我的代码
//#include<bits/stdc++.h>
#include<iostream>
#include<stdio.h>
#include<algorithm>
using namespace std;
typedef struct Person{
double time;
int index;
double waitTime;
}Person;
bool less_com(Person p1,Person p2){
return p1.time<p2.time;
}
void countWait(int n,Person a[]){
a[0].waitTime=0;
for(int i=1;i<n;i++)
{
a[i].waitTime=a[i-1].waitTime+a[i-1].time;
}
}
double averTime(int n,Person a[]){
double allTime=0;
for(int i=0;i<n;i++){
allTime=allTime+a[i].waitTime;
}
return allTime/n;
}
int main(){
int n;Person a[20000];
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i].time;//输入装水时间
a[i].index=(i+1);//标记序号
}
sort(a,a+n,less_com);//从小到大排序
for(int i=0;i<n;i++){//输出原始序号
cout<<a[i].index<<" ";
}
cout<<endl;
countWait(n,a);//统计每个人等待时间
printf("%0.2lf",averTime(n,a));//输出平均时间
cout<<endl;
return 0;
}