P1786 求助 3个点RE
  • 板块学术版
  • 楼主__20jiang09__
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/2/20 16:41
  • 上次更新2023/10/28 08:03:25
查看原帖
P1786 求助 3个点RE
398862
__20jiang09__楼主2022/2/20 16:41
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
struct people{
	string name,zw;
	ll bg,lv,nm,noz;
};
int n;
people p[1200];
bool cmp1(const people&a,const people&b){
	if(a.bg>=b.bg||a.bg==b.bg&&a.nm<b.nm)  return 1;
	return 0;
}
bool cmp2(const people&a,const people&b){
	if(a.noz==b.noz){
		if(a.lv==b.lv)  return a.nm<b.nm;
		return a.lv>b.lv;
	}
	return a.noz>b.noz;
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>p[i].name>>p[i].zw>>p[i].bg>>p[i].lv;
		p[i].nm=i;
	}  
	sort(p+4,p+1+n,cmp1);
	for(int i=1;i<=n;i++){
		if(i==1){
			p[i].zw="BangZhu";
			p[i].noz=7;
		}  
		else if(i<=3){
			p[i].zw="FuBangZhu";
			p[i].noz=6;
		}  
		else if(i<=5){
			p[i].zw="HuFa";
			p[i].noz=5;
		}
		else if(i<=9){
			p[i].zw="ZhangLao";
			p[i].noz=4;
		}
		else if(i<=16){
			p[i].zw="TangZhu";
			p[i].noz=3;
		}  
		else if(i<=41){
			p[i].zw="JingYing";
			p[i].noz=2;
		}
		else{
			p[i].zw="BangZhong";
			p[i].noz=1;
		}
	}
	sort(p+1,p+1+n,cmp2);
	for(int i=1;i<=n;i++)  cout<<p[i].name<<" "<<p[i].zw<<" "<<p[i].lv<<endl;
	return 0;
} 
2022/2/20 16:41
加载中...