这两种有什么区别吗
查看原帖
这两种有什么区别吗
544780
dodo487楼主2022/7/4 10:42

在第二次排序的时候一开始按帮贡排序,错了3个点。 后来看了题解换成了按职位排序就过了,这两个有什么不一样吗

第一次70分代码

#include<bits/stdc++.h>
using namespace std;
struct users{
	string id,zw,xzw;
	int bg,le,s;
}a[120];
bool cmp(users x,users y){
	if(x.bg == y.bg) return x.s<y.s;
	return x.bg>y.bg;
}

bool cmp2(users x,users y){
	if(x.xzw==y.xzw){
		if(x.le==y.le){
			return x.s<y.s;
		}
		else return x.le>y.le;
	}
	return x.bg>y.bg;
}
int main(){
	int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i].id>>a[i].zw>>a[i].bg>>a[i].le;
		a[i].s=i;
	}
	sort(a+4,a+n+1,cmp);
	for(int i=1;i<=n;i++){
		if(i==1) a[i].xzw="BangZhu";
		else if(i==2||i==3) a[i].xzw="FuBangZhu";
		else if(i==4||i==5) a[i].xzw="HuFa";
		else if(i>=6&&i<=9) a[i].xzw="ZhangLao";
		else if(i>=10&&i<=16) a[i].xzw="TangZhu";
		else if(i>=17&&i<=41) a[i].xzw="JingYing";
		else a[i].xzw="BangZhong"; 
	}
	sort(a+4,a+n+1,cmp2);
	for(int i=1;i<=n;i++) cout<<a[i].id<<' '<<a[i].xzw<<' '<<a[i].le<<endl;
}

第二次ac代码

#include<bits/stdc++.h>
using namespace std;
struct users{
	string id,zw,xzw;
	int bg,le,s;
}a[120];
bool cmp(users x,users y){
	if(x.bg == y.bg) return x.s<y.s;
	return x.bg>y.bg;
}
int que(string x){
	if(x=="BangZhu") return 0;
	if(x=="FuBangZhu") return 1;
	if(x=="HuFa") return 2;
	if(x=="ZhangLao") return 3;
	if(x=="TangZhu") return 4;
	if(x=="JingYing") return 5;
	if(x=="BangZhong") return 6;
}
bool cmp2(users x,users y){
	if(x.xzw==y.xzw){
		if(x.le==y.le){
			return x.s<y.s;
		}
		else return x.le>y.le;
	}
	return que(x.xzw) < que(y.xzw);
}
int main(){
	int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i].id>>a[i].zw>>a[i].bg>>a[i].le;
		a[i].s=i;
	}
	sort(a+4,a+n+1,cmp);
	for(int i=1;i<=n;i++){
		if(i==1) a[i].xzw="BangZhu";
		else if(i==2||i==3) a[i].xzw="FuBangZhu";
		else if(i==4||i==5) a[i].xzw="HuFa";
		else if(i>=6&&i<=9) a[i].xzw="ZhangLao";
		else if(i>=10&&i<=16) a[i].xzw="TangZhu";
		else if(i>=17&&i<=41) a[i].xzw="JingYing";
		else a[i].xzw="BangZhong"; 
	}
	sort(a+1,a+n+1,cmp2);
	for(int i=1;i<=n;i++) cout<<a[i].id<<' '<<a[i].xzw<<' '<<a[i].le<<endl;
}
2022/7/4 10:42
加载中...