10分求助,写了2个小时,哭了
查看原帖
10分求助,写了2个小时,哭了
1078282
zhangziy楼主2023/10/13 12:23
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
#include<map>
using namespace std; 
map<string,int> s;

struct BY{
	string name;
	string status;
	int gx;
	int dj;
	int id;
};
bool cmp1(const BY &a, const BY &b) {
	if (a.gx > b.gx) {
		return true;
	} 
	return false;
}

bool cmp2(const BY &a, const BY &b) {
	if (s[a.status]<s[b.status]) {
		return true;
	}else if (a.status==b.status&&a.dj==b.dj&&a.id<b.id) {
		return true;
	}else if(a.status==b.status&&a.dj>b.dj){
		return true;
	}else{
		return false;
	}
}
int main(){
	s["BangZhu"]=1;
	s["FuBangZhu"]=2;
	s["HuFa"]=3;
	s["ZhangLao"]=4;
	s["TangZhu"]=5;
	s["Jingying"]=6;
	s["BangZhong"]=7;
	int n;
	cin>>n;
	vector<BY> by;
	vector<BY> by1;
	int m=0;
	int m1=0;
	while(n--){
		BY t;
		cin>>t.name>>t.status>>t.gx>>t.dj;
		if(t.status=="BangZhu"||t.status=="FuBangZhu"){
			t.id=m1++;
			by1.push_back(t);
		}else{
			t.id=m++;
			by.push_back(t);
		}
		
	}
	int len=by.size();
	sort(by.begin(),by.end(),cmp1);
	for(int i=0;i<2&&i<len;i++){
		by[i].status="HuFa";
	}
	for(int i=2;i<6&&i<len;i++){
		by[i].status="ZhangLao";
	}
	for(int i=6;i<13&&i<len;i++){
		by[i].status="TangZhu";
	}
	for(int i=13;i<38&&i<len;i++){
		by[i].status="JingYing";
	}
	for(int i=38;i<len;i++){
		by[i].status="BangZhong";
	}
	sort(by.begin(),by.end(),cmp2);
	sort(by1.begin(),by1.end(),cmp2);
	for(int i=0;i<m1;i++){
		cout<<by1[i].name<<' '<<by1[i].status<<' '<<by1[i].dj<<endl;
	}
	for(int i=0;i<len;i++){
		cout<<by[i].name<<' '<<by[i].status<<' '<<by[i].dj<<endl;
	}
	return 0;
}
2023/10/13 12:23
加载中...