30pts,求调
查看原帖
30pts,求调
1017079
luojingjie楼主2024/10/13 14:05
#include<bits/stdc++.h>
using namespace std; 
struct s{  
    long long id;  
    long long g, s, b;  
};   
bool gs(const s &a, const s &b) {  
    if(a.g!=b.g){  
        return a.g>b.g;  
    }
	else{  
        return a.id < b.id;
    }  
}  
bool cs(const s &a, const s &b) {  
    if(a.s!=b.s){  
        return a.s>b.s;  
    }
	else{  
        return a.id<b.id;  
    }  
}  
bool bs(const s &a, const s &b) {  
    if(a.b!=b.b){  
        return a.b>b.b;  
    }
	else{  
        return a.id<b.id;  
    }  
}  
int n; 
int main(){  
    cin>>n;  
    vector<s> v(n+1);  
    for (int i=0;i<n;++i){  
        v[i].id=i+1;  
        cin>>v[i].g>>v[i].s>>v[i].b;  
    } 
    vector<s> gc=v;  
    vector<s> sc=v;  
    vector<s> bc=v;  
    sort(gc.begin(),gc.end(),gs);  
    sort(sc.begin(),sc.end(),cs);  
    sort(bc.begin(),bc.end(),bs);  
    vector<int> br(n, n + 1);
    for(int i=0;i<n;++i){  
        br[gc[i].id-1]=min(br[gc[i].id-1],i+1);  
    } 
    for(int i=0;i<n;++i){  
        br[sc[i].id-1]=min(br[sc[i].id-1],i+1);  
    } 
    for(int i=0;i<n;++i){  
        br[bc[i].id-1]=min(br[bc[i].id-1],i+1);  
    } 
    for(int i=0;i<n;++i){  
        cout<<br[i]<<endl;  
    }  
    return 0;  
}
2024/10/13 14:05
加载中...