求助
查看原帖
求助
787961
Fred_gong楼主2024/6/5 17:20

样例有问题,不知道哪错了

#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;  
}
2024/6/5 17:20
加载中...