张ZYH @ 2022-01-27 12:52:35
rt
#include<bits/stdc++.h>
using namespace std;
long long n,a[10001],b[10001],c[10001],h[10001];
long long y[10001];
int main(){
cin>>n;
for(long long i=1;i<=n;i++){
cin>>a[i]>>b[i]>>c[i];
y[i]=i;
h[i]=a[i]+b[i]+c[i];
}
for(long long i=1;i<=n;i++){
for(long long j=i+1;j<=n;j++){
if(h[j]>h[i]){
swap(h[j],h[i]);
swap(y[j],y[i]);
}
}
}
for(long long i=1;i<=5;i++){
cout<<y[i]<<" "<<h[i]<<endl;
}
return 0;
}
by waauto @ 2022-01-27 13:15:49
**同总分语文高的排在前面
同总分语文分同,学号小的在前面 这些都没写**
同时建议使用sort自定义排序,因为它的复杂度仅有nlogn
by qwq___qaq @ 2022-01-27 13:16:14
@张ZYH 排序方式错了
先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学 排在前面
by 张ZYH @ 2022-01-27 13:51:09
@rain 结构体没学好
by 瞳_Jerry_0 @ 2022-02-19 12:11:09
不至于开long long数组,int就够了,long long还慢一些; 另外这个推荐使用结构体和sort排序函数(但是要编写一个cmp比较函数,不会用冒泡插入选择也可以,不过时间复杂度可达O(n²),sort只有O(nlogn))