题目: 分析:os专门学过,相当于熟悉一下自定义的排序。 代码: #include<bits/stdc++.h> using namespace std; struct node{ int num;//位置 int x;//值 } nn[1000005]; bool cmp(node x1,node x2) { return x1.x<x2.x; } int main() { int m; cin>>m; vector<int> v; for(int i=0;i<m;i++) { int c; cin>>c; v.push_back(c); nn[i].x=c; nn[i].num=i+1; } sort(v.begin(),v.end()); sort(nn,nn+m,cmp); double ans=0.0; long long sum=v[0]; for(int i=1;i<m;i++) { ans=ans+sum; sum=sum+v[i]; } for(int i=0;i<m;i++) cout<<nn[i].num<<' '; cout<<endl; printf("%.2lf",ans/m); }