0pts求调
查看原帖
0pts求调
929086
huanxue楼主2024/5/5 15:59
#include <bits/stdc++.h>
using namespace std;
int n;
struct node{
    int a , b , c , p , q;
    bool operator < (const node& A) const{
        if(a + b + c != A.a + A.b + A.c) return a + b + c > A.a + A.b + A.c;
        if(a + b != A.a + A.b) return a + b > A.a + A.b;
        if(max(a , b) != max(A.a , A.b)) return max(a , b) > max(A.a , A.b);
        return 0;
    }
}s[100005];
bool cmp(node B , node C){
    return B.p < C.p;
}
int main(){
    cin >> n;
    for(int i = 0 ; i <= n - 1 ; i++) cin >> s[i].a >> s[i].b >> s[i].c , s[i].p = i;
    sort(s , s + n - 1);
    for(int i = 0 ; i <= n - 1 ; i++){
    	if(s[i].a + s[i].b + s[i].c == s[i - 1].a + s[i - 1].b + s[i - 1].c && s[i].a + s[i - 1].b == s[i - 1].a + s[i - 1].b
		        && max(s[i].a, s[i].b) == max(s[i - 1].a, s[i - 1].b))
			s[i].q = s[i - 1].q;
		else s[i].q = i + 1;
	}
    sort(s , s + n - 1 , cmp);
    for(int i = 0 ; i <= n - 1 ; i++) cout << s[i].q << endl;
    return 0;
}

麻烦@我一下

2024/5/5 15:59
加载中...