样例有问题,不知道哪错了
#include<bits/stdc++.h>
using namespace std;
struct stu {
string name;
int score1;
int score2;
int score3;
};
stu x[1000005];
bool is_equivalent(stu a, stu b)
{
if (abs(a.score1 - b.score1) <= 5 &&
abs(a.score2 - b.score2) <= 5 &&
abs(a.score3 - b.score3) <= 5 &&
abs(a.score1 + a.score2 + a.score3 - (b.score1 + b.score2 + b.score3)) <= 10) {
return true;
}
return false;
}
bool cmp(stu a, stu b)
{
if (a.name != b.name) return a.name < b.name;
return false;
}
int main() {
int n;
cin >> n;
for (int i = 1; i <=n; i++)
{
cin >> x[i].name >> x[i].score1 >> x[i].score2 >> x[i].score3;
}
sort(x, x + n, cmp);
for (int i = 0; i < n - 1; i++)
{
for (int j = i + 1; j < n; j++)
{
if (is_equivalent(x[i], x[j]))
{
cout << x[i].name << " " << x[j].name << endl;
}
}
}
return 0;
}