考察排序。
https://www.acwing.com/problem/content/431/
1 #include<iostream> 2 #include<algorithm> 3 using namespace std; 4 const int N=310; 5 struct node{ 6 int a,b,c; 7 int sum; 8 int id; 9 }; 10 node s[N]; 11 bool cmp(node a,node b){ 12 if(a.sum==b.sum&&a.a==b.a){ 13 return a.id<b.id; 14 } 15 if(a.sum==b.sum){ 16 return a.a>b.a; 17 } 18 return a.sum>b.sum; 19 } 20 int main(void){ 21 int n; 22 cin>>n; 23 for(int i=1;i<=n;i++){ 24 cin>>s[i].a>>s[i].b>>s[i].c; 25 s[i].sum=s[i].a+s[i].b+s[i].c; 26 s[i].id=i; 27 } 28 sort(s+1,s+n+1,cmp); 29 for(int i=1;i<=5;i++){ 30 cout<<s[i].id<<" "<<s[i].sum<<endl; 31 } 32 return 0; 33 }