#include<cstdio> #include<iostream> #include<string> #include<algorithm> #include<cstring> #include<vector> using namespace std; typedef long long lli; int data[5000]; inline bool cmp(int l,int r){ for(int i=1;i<=10;i++){ printf("%d ",data[i]); } printf("\n"); return data[l]>data[r]; } int main() { int n; cin>>n; for(int i=1;i<=n;i++){ cin>>data[i]; } vector<int>p; for(int i=1;i<=10;i++){ p.push_back(i+20); } sort(p.begin(),p.end(),cmp); for(int oo:p){ cout<<oo<<" "; } cout<<endl; for(int i=1;i<=n;i++){ printf("%d ",data[i]); } printf("\n"); return 0; }
就跟普通的排序一样,只不过是权值由原来的数组本身的值,改为了data数组。
另外我貌似还发现了,这样似乎就能把sort的排序过程输出出来。