测试样例能过。。
#include<bits/stdc++.h>
using namespace std;
struct aa{
string name;
int yuwen;
int shuxue;
int yingyu;
int grade;
};
int main(){
int n;
cin>>n;
aa student[n+1];
for(int i=1;i<=n;i++){
cin>>student[i].name>>student[i].yuwen>>student[i].shuxue>>student[i].yingyu;
student[i].grade=student[i].yuwen+student[i].shuxue+student[i].yingyu;
}
for(int i=1;i<=n-1;i++){
int tmp=i;
for(int j=tmp+1;j<=n;j++){
if(student[j].grade<student[tmp].grade){
tmp=j;
}
}
if(tmp!=i){
swap(student[tmp].name,student[i].name);
swap(student[tmp].grade,student[i].grade);
swap(student[tmp].yuwen,student[i].yuwen);
swap(student[tmp].shuxue,student[i].shuxue);
swap(student[tmp].yingyu,student[i].yingyu);
}
}
// for(int i=1;i<=n;i++){
// cout<<student[i].name<<" "<<student[i].yuwen<<" "<<student[i].shuxue<<" "<<student[i].yingyu<<" "<<student[i].grade<<endl;
// }
for(int i=1;i<=n-1;i++){
for(int j=i+1;j<=n;j++){
if(abs(student[i].grade-student[j].grade)<=10&&abs(student[i].yuwen-student[j].yuwen)<=5&&abs(student[i].shuxue-student[j].shuxue)<=5&&abs(student[i].yingyu-student[j].yingyu)<=5){
if(student[i].name<student[j].name)cout<<student[i].name<<" "<<student[j].name<<endl;
else cout<<student[j].name<<" "<<student[i].name<<endl;
}
}
}
return 0;
}