审题了啊(怎么还是10分
  • 板块P1786 帮贡排序
  • 楼主canwen
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/5/18 12:29
  • 上次更新2024/5/18 15:17:59
查看原帖
审题了啊(怎么还是10分
1284815
canwen楼主2024/5/18 12:29

放上没审题之前的乱七八糟代码(还有40分!)

#include<bits/stdc++.h>
using namespace std;
struct p{
	string name;
	int zhiwei;
	int d;
};
bool cmp(p a,p b){
	if(a.zhiwei!=b.zhiwei){
		return a.zhiwei>b.zhiwei;
	}else{
		return a.d>b.d;
	}
}
int main(){
	int n,q;string a;
	cin>>n;
	p s[n+1];
	for(int i=1;i<=n;i++){
		cin>>s[i].name;
		cin>>a;
		if(a=="BangZhu"){
			s[i].zhiwei=8;
		}
		if(a=="FuBangZhu"){
			s[i].zhiwei=7;
		}
		if(a=="HuFa"){
			s[i].zhiwei=6;
		}
		if(a=="ZhangLao"){
			s[i].zhiwei=5;
		}
		if(a=="TangZhu"){
			s[i].zhiwei=4;
		}
		if(a=="JingYing"){
			s[i].zhiwei=3;
		}
		if(a=="BangZhong"){
			s[i].zhiwei=2;
		}
		cin>>q>>s[i].d;
	}
	sort(s+1,s+1+n,cmp);
//	cout<<endl;
	int sss=1;
	for(int i=1;i<=n;i++){
		
		cout<<s[i].name<<" ";
		if(sss==1){
			cout<<"BangZhu";
		}else{
			if(sss>1&&sss<=3){
				cout<<"FuBangZhu";
			}else{
				if(sss>3&&sss<=5){
					cout<<"HuFa";
				}else{
					if(sss>5&&sss<=9){
						cout<<"ZhangLao";
					}else{
						if(sss>9&&sss<=16){
							cout<<"TangZhu";
						}else{
							if(sss>16&&sss<=41){
								cout<<"JingYing";
							}else{
								cout<<"BangZhong";
							}
						}
					}
				}
			}
		}
		cout<<" "<<s[i].d<<endl;
		sss++;
	}
		
	return 0;
}

审题后的(10分)。。

#include<bits/stdc++.h>
using namespace std;
int n;
struct student{
	string name;
	int job;//职位 
	int star;//帮贡 
	int level;//等级 
};
bool cmp(student a,student b){
	return a.star>b.star;
}
bool gmp(student a,student b){
	if(a.job!=b.job){
		return a.job<b.job;
	}else{
		if(a.level!=b.level)
		return a.level>b.level;
		else return false;
	}
}
int main(){
	freopen("in.txt","r",stdin);
	freopen("out.txt","w",stdout);
	cin>>n;
	string q;
	student s[n+1];
	for(int i=1;i<=n;i++){
		cin>>s[i].name;
		cin>>q;
		if(q=="BangZhu")s[i].job=1;
		else if(q=="FuBangZhu")s[i].job=2;
		else if(q=="HuFa")s[i].job=3;
		else if(q=="ZhangLao")s[i].job=4;
		else if(q=="TangZhu")s[i].job=5;
		else if(q=="JingYing")s[i].job=6;
		else s[i].job=7;
		cin>>s[i].star>>s[i].level;
	}
	//职位排序 
	sort(s+1,s+1+n,cmp);
	int qq=1;
	for(int i=1;i<=n;i++){
		if(s[i].name=="absi2011"||s[i].job==1||s[i].job==2) continue;
		if(qq>=1&&qq<=2) s[i].job=3;
		else if(qq>2&&qq<=6) s[i].job=4;
		else if(qq>6&&qq<=13) s[i].job=5;
		else if(qq>13&&qq<=38) s[i].job=6;
		else s[i].job=7;
		qq++;
	}
	sort(s+1,s+n+1,gmp);
//	cout<<endl;
	for(int i=1;i<=n;i++){
		cout<<s[i].name<<" ";
		if(s[i].job==1)cout<<"BangZhu";
		if(s[i].job==2)cout<<"FuBangZhu";
		if(s[i].job==3)cout<<"HuFa";
		if(s[i].job==4)cout<<"ZhangLao";
		if(s[i].job==5)cout<<"TangZhu";
		if(s[i].job==6)cout<<"JingYing";
		if(s[i].job==7)cout<<"BangZhong";
		cout<<" "<<s[i].level<<endl;
	}
	return 0;
}
2024/5/18 12:29
加载中...