为什么2个RE,剩下的全是WA,大佬看看呗
查看原帖
为什么2个RE,剩下的全是WA,大佬看看呗
1535033
Dream_R_P_C楼主2024/10/22 20:18

大佬看看吧

#include<bits/stdc++.h>
using namespace std;
int n;  
int jin[100],yin[100],tong[100]; 
int pai_ming[100];   
int Dream[100];
bool cpm_jin(int a,int b){  
    if(jin[a]!=jin[b]){
		return jin[a]>jin[b];  
	}
	if(yin[a]!=yin[b]){
		return yin[a]>yin[b];  
	}
	return tong[a]>tong[b];  
}  
bool cpm_yin(int a,int b){  
    if(yin[a]!=yin[b]){
		return yin[a]>yin[b];  
	}
	if(jin[a]!=jin[b]){
		return jin[a]>jin[b];  
	}
	return tong[a]>tong[b];  
}  

bool cmp_tong(int a,int b){  
    if(tong[a]!=tong[b]){
		return tong[a]>tong[b];  
	}
	if(jin[a]!=jin[b]){
		return jin[a]>jin[b];  
	}
	return yin[a]>yin[b];  
}  

int main(){  
    cin>>n;  
    for(int i=0;i<n;i++){  
        cin>>jin[i]>>yin[i]>>tong[i];  
        Dream[i]=i;
        pai_ming[i]=n; 
    }  
    sort(Dream,Dream+n,cpm_jin);  
    for(int i=0;i<n;i++){  
        if(i>0&&jin[Dream[i]]==jin[Dream[i-1]]&&yin[Dream[i]]==yin[Dream[i-1]]&&tong[Dream[i]]==tong[Dream[i-1]]){  
            pai_ming[Dream[i]]=pai_ming[Dream[i-1]];
        } 
		else{  
            pai_ming[Dream[i]]=i+1; 
        }  
    } 
    sort(Dream,Dream+n,cpm_yin);  
    for(int i=0;i<n;i++){  
        if(i>0&&yin[Dream[i]]==yin[Dream[i-1]]&&jin[Dream[i]]==jin[Dream[i-1]]&&tong[Dream[i]]==tong[Dream[i-1]]){
			pai_ming[Dream[i]]=min(pai_ming[Dream[i]],pai_ming[Dream[i-1]]);  
        } 
		else{  
            pai_ming[Dream[i]]=min(pai_ming[Dream[i]],i+1);  
        }  
    } 
    sort(Dream,Dream+n,cmp_tong);  
    for(int i=0;i<n;i++){  
        if(i>0&&tong[Dream[i]]==tong[Dream[i-1]]&&jin[Dream[i]]==jin[Dream[i-1]]&&yin[Dream[i]]==yin[Dream[i-1]]){ 
			pai_ming[Dream[i]]=min(pai_ming[Dream[i]], pai_ming[Dream[i-1]]);  
        } 
		else{  
            pai_ming[Dream[i]]=min(pai_ming[Dream[i]],i+1);  
        }  
    }  
    for(int i=0;i<n;i++){  
        cout<<pai_ming[i]<<endl;  
    }  

	return 0;
}

2024/10/22 20:18
加载中...