求助!只过了第一个测试点
查看原帖
求助!只过了第一个测试点
608765
Dreaming_Zhong楼主2022/6/7 18:10

只过了第一个。。。。。 修改了好久,救救孩子吧!

#include<bits/stdc++.h>
using namespace std;
struct inf{
	string name,pro;
	int grade,id;
	long long gong;
};
bool cmp(inf x,inf y){
	if(x.gong==y.gong) return x.id<y.id; 
	return x.gong>y.gong;
}
bool cmp2(inf x,inf y){
	if(x.grade==y.grade) return x.id<y.id;
	return x.grade>y.grade;
}
int main(){
	int n;
	struct inf a[112];
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>a[i].name>>a[i].pro>>a[i].gong>>a[i].grade;
		a[i].id=i;
	}
	sort(a+3,a+n,cmp);
	for(int i=3;i<n;i++){
		if(n>=4)
		sort(a+3,a+5,cmp2);
		else
		sort(a+3,a+n,cmp2);
		if(i<=4){
			a[i].pro="HuFa";
			continue;
		}
		if(n>=8)
		sort(a+5,a+9,cmp2);
		else
		sort(a+5,a+n,cmp2);
		if(i<=8){
			a[i].pro="ZhangLao";
			continue;
		}
		if(n>=15)
		sort(a+9,a+16,cmp2);
		else
		sort(a+9,a+n,cmp2);
		if(i<=15){
			a[i].pro="TangZhu";
			continue;
		}
		if(n>=40)
		sort(a+15,a+41,cmp2);
		else
		sort(a+15,a+n,cmp2);
		if(i<=40){
			a[i].pro="JingYing";
			continue;
		}
		sort(a+41,a+n,cmp2);
		a[i].pro="BangZhong";
		
	}
	for(int i=0;i<n;i++){
		printf("%s %s %d\n",a[i].name.c_str(),a[i].pro.c_str(),a[i].grade);
	}
}
2022/6/7 18:10
加载中...