样例正确,但是0分!
查看原帖
样例正确,但是0分!
559847
Ferm_Tawn楼主2021/12/4 11:45

代码:

#include<bits/stdc++.h>
using namespace std;
struct people{
	int id;
	string name;
	string job;
	int devote;
	int high;
};
people a[200];
bool cmp1(people c , people d){
	if(c.devote == d.devote) return c.id < d.id;
	else return c.devote > d.devote;
}
bool cmp2(people e , people f){
	if(e.job == f.job){
		return e.high > f.high;
	}
	else return 0;
}
int ber[7] = {1 , 2 , 2 , 4 , 7 , 25 , -1};
string jobn[7] = {"Bangzhu" , "Fubangzhu" , "Hufa" , "Zhanglao" , "Tangzhu" , "Jingying" , "Bangzhong"};
int main(){
	int n;
	cin >> n;
	for(int i = 1 ; i <= n ; i++){
		a[i].id = i;
		cin >> a[i].name >> a[i].job >> a[i].devote >> a[i].high;
	}
	sort(a + 4 , a + n + 1 , cmp1);
	int num = 0;
	for(int i = 1 ; i <= n ; i++){
		if(ber[num] <= 0) num++;
		if(num == 6){
			a[i].job = jobn[6];
			continue;
		} 
		a[i].job = jobn[num];
		ber[num]--;
	}
	sort(a + 4 , a + n + 1 , cmp2);
	for(int i = 1 ; i <= n ; i++){
		cout << a[i].name << " " << a[i].job << " " << a[i].high;
		cout << "\n";
	}
	return 0;
}
2021/12/4 11:45
加载中...