10
查看原帖
10
1129161
huangchengyi楼主2024/8/20 11:44
#include <bits/stdc++.h>
using namespace std;
map<string, int >mp;

struct ren {
	string name, job;
	int banggong, dengji, id;
} a[120];

bool cmp(ren x, ren y) {
	if (x.banggong == y.banggong) {
		return x.id < y.id;
	}
	return x.banggong > y.banggong;
}

bool cmp2(ren x, ren y) {
	if (mp[x.job] == mp[y.job]) {
		if (x.dengji == y.dengji) {
			return x.id < y.id;
		}
		return x.dengji > y.dengji;
	}
	return mp[x.job] < mp[y.job];
}

int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	mp["BangZhu"] = 1;
	mp["FuBangZhu"] = 3;
	mp["HuFa"] = 5;
	mp["ZhangLao"] = 9;
	mp["TangZhu"] = 14;
	mp["JingYing"] = 39;
	int n;
	cin >> n;
	for (int i = 0; i < n; i++) {
		cin >> a[i].name >> a[i].job >> a[i].banggong >> a[i].dengji;
		a[i].id = i;
	}
	sort(a + 3, a + n, cmp);
	for (int i = 0; i < n; i++) {
		if (i < mp["BangZhu"]) {
			a[i].job = "BangZhu";
		} else if (i < mp["FuBangZhu"]) {
			a[i].job = "FuBangZhu";
		} else if (i < mp["HuFa"]) {
			a[i].job = "HuFa";
		} else if (i < mp["ZhangLao"]) {
			a[i].job = "ZhangLao";
		} else if (i < mp["TangZhu"]) {
			a[i].job = "TangZhu";
		} else if (i < mp["JingYing"]) {
			a[i].job = "JingYing";
		} else {
			a[i].job = "BangZhong";
		}
	}
	sort(a, a + n, cmp2);
	for (int i = 0; i < n; i++) {
		cout << a[i].name << " " << a[i].job << " " << a[i].dengji << "\n";
	}
	return 0;
}
2024/8/20 11:44
加载中...