虽然AC了,但我还是不太懂我的代码(听别人讲的),有没有谁看得懂的,麻烦讲一下这个代码的思路
#include <bits/stdc++.h>
using namespace std;
struct sj {
int id;
int sum,x,y,z;
} a[1111];
bool cpr(sj a,sj b) {
if(a.sum==b.sum&&a.x==b.x) {
return a.id<b.id;
}
if(a.sum==b.sum) {
return a.x>b.x;
} else {
return a.sum>b.sum;
}
}
int main() {
int n;
cin>>n;
int i,j;
for(i=1; i<=n; ++i) {
a[i].id=i;
cin>>a[i].x>>a[i].y>>a[i].z;
a[i].sum=a[i].x+a[i].y+a[i].z;
}
sort(a+1,a+n+1,cpr);
for(j=1; j<=5; ++j) {
cout<<a[j].id<<" "<<a[j].sum<<endl;
}
return 0;
}