排一下序就行了
#include <bits/stdc++.h>
using namespace std;
#define LL long long
const int INF = 0x3f3f3f3f;
const int MAXN = 1e6+10;
int trie[MAXN][2];
const int mod = 998244353;
int arr[MAXN];
struct node {
int id, x;
bool operator <(const node &r)const {
if(x != r.x)
return x < r.x;
return id < r.id;
}
}p[MAXN];
int main() {
int n, x;
cin >> n;
for(int i = 1; i <= n; i++) {
cin >> p[i].x;
p[i].id = i;
}
sort(p+1, p+1+n);
LL sum = 0;
for(int i = 1; i <= n; i++) {
sum += (p[i].x)*(n-i);
}
for(int i = 1; i < n; i++) cout << p[i].id << " ";
cout << p[n].id << endl;
printf("%.2f\n",sum*1.0/n);
return 0;
}