死活看不出来哪里错了
查看原帖
死活看不出来哪里错了
1193780
wuhusjqif楼主2024/1/24 21:26
#include <bits/stdc++.h>
using namespace std;
struct gang{
	string nam ,zhw;
	long long con;
	int rat,zhw_R,lis;
}gan[120];
bool B_compar(gang a,gang b){
	if(a.con == b.con) return a.lis < b.lis;
	return a.con > b.con;
}
bool R_compar(gang a,gang b){
	if(a.zhw_R == a.zhw_R) {
	    if(a.rat == b.rat) return a.lis < b.lis;
	    return a.rat > b.rat;
	}
	return a.zhw_R > b.zhw_R;
}

int main(){
	int n; cin >> n;
	for(int i = 0; i < n; ++i){
		cin >> gan[i].nam >> gan[i].zhw >> gan[i].con >> gan[i].rat;
		if(gan[i].zhw == "BangZhu") gan[i].zhw_R = 6;
		else if(gan[i].zhw == "FuBangZhu") gan[i].zhw_R = 5;
		else if(gan[i].zhw == "HuFa") gan[i].zhw_R = 4;
		else if(gan[i].zhw == "ZhangLao") gan[i].zhw_R = 3;
		else if(gan[i].zhw == "TangZhu") gan[i].zhw_R = 2;
		else if(gan[i].zhw == "JingYing") gan[i].zhw_R = 1;
		else gan[i].zhw_R = 0;
		gan[i].lis = i;
	}
	sort(gan+3,gan+n,B_compar);
	for(int i = 3; i < n; ++i){
		if (i==3||i==4) gan[i].zhw ="HuFa",gan[i].zhw_R = 4;
	    else if (i>=5&&i<=8) gan[i].zhw ="ZhangLao",gan[i].zhw_R = 3;
	    else if (i>=9&&i<=15) gan[i].zhw ="TangZhu",gan[i].zhw_R = 2;
	    else if (i>=16&&i<=40) gan[i].zhw ="JingYing",gan[i].zhw_R = 1;
	    else gan[i].zhw ="BangZhong",gan[i].zhw_R = 0;
		
	}
	sort(gan,gan+n,R_compar);
	for(int i = 0; i < n; ++i){
		cout << gan[i].nam << ' ';
		cout << gan[i].zhw << ' ';
		cout << gan[i].rat << endl;
	}
	return 0;
}
2024/1/24 21:26
加载中...