样例没过,布吉岛为什么,求解惑。
查看原帖
样例没过,布吉岛为什么,求解惑。
1079023
IlIlIlIlI楼主2024/11/23 15:45
#include<bits/stdc++.h>
using namespace std;
int a[10005],b[10005],c[10005],d[10005];
int v(int i,int j){
	if(a[i]+b[i]+c[i]<a[j]+b[j]+c[j]){
		return 1;
	}
	else if(a[i]+b[i]+c[i]==a[j]+b[j]+c[j]){
		if(a[i]+b[i]<a[j]+b[j]){
			return 1;
		}
		else if(a[i]+b[i]==a[j]+b[j]){
			if(max(a[i],b[i])<max(a[j],b[j])){
				return 1;
			}
			else if(max(a[i],b[i])==max(a[j],b[j])){
				return 2;
			}
			else{
				return 0;
			}
		}
		else{
			return 0;
		}
		
	}
	else{
		return 0;
	}
}
int main(){
	int n,y;
	cin>>n;
	
	for(int i=0;i<n;i++){
		cin>>a[i]>>b[i]>>c[i];
		d[i]=i+1;
	}
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			if(i==j){
				continue;
			}
			y=v(i,j);
			if(y==1&&d[j]>d[i]){
				swap(d[i],d[j]);
			}
			else if(y==0&&d[i]<d[j]){
				swap(d[i],d[j]);
			}
			else if(y==2){
				d[i]=min(d[i],d[j]);
				d[j]=d[i];
				for(int k=0;k<n;k++){
					if(d[k]>d[i]){
						d[k]++;
					}
				}
			}
		}
	}
	for(int i=0;i<n;i++){
		cout<<d[i]<<endl;
	}
} 
2024/11/23 15:45
加载中...