求助,WA10
查看原帖
求助,WA10
322620
Nygglatho楼主2021/6/11 06:51
#include <bits/stdc++.h>
using namespace std;
int n;
struct bp {
	string name;
	string zwei;
	long long bg;
	long long dj;
	int r;
}a[1001];
map<string, int> mp;
void tz() {
	//修改职位
	for (int i = 4; i <= 5; ++i) a[i].zwei = "Hufa";
	for (int i = 6; i <= 9; ++i) a[i].zwei = "ZhangLao";
	for (int i = 10; i <= 16; ++i) a[i].zwei = "TangZhu";
	for (int i = 17; i <= 41; ++i) a[i].zwei = "JingYing";
	for (int i = 42; i <= n; ++i) a[i].zwei = "BangZhong";
}
bool cmp1(bp x, bp y) {
	if (x.bg > y.bg) return true;//排帮贡
	if (x.bg < y.bg) return false;
	return x.r < y.r;
}
bool cmp2(bp x, bp y) {
	if(mp[x.zwei] < mp[y.zwei]) return true;//排职位
	if(mp[x.zwei] > mp[y.zwei]) return false;
	if(x.dj > y.dj) return true;//排等级
	if(x.dj < y.dj) return false;
	return x.r < y.r;
}
int main() {
	std::ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	mp["BangZhu"] = 1;//帮主
	mp["FuBangZhu"] = 2;//副帮主
	mp["HuFa"] = 3;//护法
	mp["ZhangLao"] = 4;//长老
	mp["TangZhu"] = 5;//堂主
	mp["JingYing"] = 6;//精英
	mp["BangZhong"] = 7;//帮众
	cin >> n;
	for (int i = 1; i <= n; ++i) {
		cin >> a[i].name >> a[i].zwei >> a[i].bg >> a[i].dj;
		a[i].r = i;
	}
	sort(a + 4, a + n + 1, cmp1);
	tz();
	sort(a + 1, a + n + 1, cmp2);
	for (int i = 1; i <= n; ++i) {
		cout << a[i].name << ' ' << a[i].zwei << ' ' << a[i].dj << endl;
	}
}
2021/6/11 06:51
加载中...