求助!只有十分!
查看原帖
求助!只有十分!
639288
chrisDLkk楼主2023/12/17 16:38
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
char a[600];//p8342落谷  答题逻辑已经清晰 
struct wc{
	string name;
	int wz,wzw,sl;
};
wc c[600],d[600];
bool cmp(wc x,wc y){
	if(x.sl==y.sl) return x.name<y.name;
	else return x.sl>y.sl;
}
int main(){
	int n,x;
	cin>>n;
	for(int i=0;i<n;i++){
		c[i].wz=i+1;
		cin>>c[i].name;
		c[i].sl=0;
		for(int j=0;j<5;j++){
			cin>>x;
			c[i].sl+=x;
		}
		d[i].name=c[i].name;
		d[i].wz=c[i].wz;
		d[i].sl=c[i].sl;
	}
	sort(c,c+n,cmp);
	for(int j=0;j<n;j++){
		//cout<<d[j].sl<<" now:"<<endl;
		for(int i=0;i<n;i++){
			if(d[j].sl+500>c[i].sl||(d[j].sl==c[i].sl&&d[j].name<c[i].name)){
				d[j].wz=i+1;//cout<<i<<endl;
				break;
			}
		}
		for(int i=n-1;i>=0;i--){
			if(d[j].sl-500<c[i].sl||(d[j].sl==c[i].sl&&d[j].name<c[i].name)){
				d[j].wzw=i+1;//cout<<"n:"<<i<<endl;
				break;
			}
		}
	}
	//cout<<"w ad"<<endl;
	for(int i=0;i<n;i++){
		cout<<d[i].wz<<" "<<d[i].wzw<<endl;
	}
	return 0;
}
2023/12/17 16:38
加载中...