
我的程序一直Wrong Answer,不知道问题出在哪里?希望帮忙解答!🙏
#include<iostream>
#include<vector>
#include<algorithm>
#include<iomanip>
using namespace std;
struct Person{
int id;
int time;
};
bool compare(const Person &a,const Person &b){
if(a.time==b.time){
return a.id<b.id;
}
return a.time<b.time;
}
int main(){
int T;
cin>>T; // 测试数据组数
while(T--){
int n;
cin>>n;
vector<Person> people(n);
// 输入每个人的接水时间
for(int i=0;i<n;i++){
people[i].id=i+1;
cin>>people[i].time;
}
// 排序
sort(people.begin(),people.end(),compare);
// 输出排队顺序
for(int i=0;i<n;i++){
cout<<people[i].id;
if(i != n-1) cout<<" ";
}
cout<<endl;
long long sum=0;
for(int i=0;i<n;i++){
sum+=(long long)people[i].time*(n-i-1);
}
printf("%.2f",sum*1.0/n);
}
return 0;
}