题目链接:P1223排队接水
代码是这样的:
#include<bits/stdc++.h>
using namespace std;
int n;
struct node{
int id,time;
}a[2000];
bool cmp(node x,node y)
{
return x.time<y.time;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i].time;
a[i].id=i;
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++)
{
printf("%d ",a[i].id);
}
printf("\n");
int sum=0;
for(int i=n-1;i>=1;i--)
{
int j=n-i;
sum+=a[j].time*i;
}
printf("%.2lf\n",(double)sum/(double)n);
return 0;
}
我认为好像没有错误,但是仍只得82分,2个测试点未过,十分疑惑,边来社区求援,期望有大佬看到能帮助我一下,谢谢~~