思路:
用结构体储存相同用时的人的位置,在由小到大排。
#include<bits/stdc++.h>
using namespace std;
struct node{
int a;
int pos[1010];
int k;
}stu[1010];
bool cmp(node a, node b)
{
return a.a < b.a;
}
int num[1010];
int main()
{
int n;
scanf("%d",&n);
for(int i = 1; i <= n; i++)
{
scanf("%d",&stu[i].a);
stu[i].pos[stu[i].k++] = i;
}
sort(stu + 1, stu + 1 + n,cmp);
double ans = 0;
int cnt = 2;
for(int i = 1; i <= n; i++)
{
for(int j = 0; j < stu[i].k; j++)
{
printf("%d ",stu[i].pos[j]);
num[cnt] = num[cnt-1] + stu[i-1].a;
cnt++;
}
}
for(int i = 1; i < cnt; i++)
ans += num[i] * 1.0;
printf("\n");
printf("%0.2lf\n",ans / n);
}