社区讨论
求调一份非常容易调的代码
P1786帮贡排序参与者 2已保存回复 6
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 6 条
- 当前快照
- 1 份
- 快照标识符
- @lo29jn7b
- 此快照首次捕获于
- 2023/10/23 10:13 2 年前
- 此快照最后确认于
- 2023/11/03 10:25 2 年前
CPP
#include<bits/stdc++.h>
#define int long long
using namespace std;
inline int read()
{
register int x=0,f=1;
char c=getchar();
while(c<'0'||c>'9')
{
if(c=='-') f=-1;
c=getchar();
}
while(c>='0'&&c<='9')
{
x=(x<<3)+(x<<1)+(c^48);
c=getchar();
}
return x*f;
}
struct node
{
int id,banggong,lv;
string name,zhiwei;
}a[115];
int n;
bool cmp(node x,node y)
{
if(x.banggong==y.banggong) return x.id<y.id;
else return x.banggong>y.banggong;
}
int level(string x)
{
if(x=="Hufa") return 0;
if(x=="Zhanglao") return 1;
if(x=="Tangzhu") return 2;
if(x=="Jingying") return 3;
return 4;
}
void bian()
{
for(int i=4;i<=n;i++)
{
if(i==4 || i==5) a[i].zhiwei="Hufa";
if(i>=6 && i<=9) a[i].zhiwei="Zhanglao";
if(i>=10 && i<=16) a[i].zhiwei="Tangzhu";
if(i>=17 && i<=41) a[i].zhiwei="Jingying";
if(i>=41) a[i].zhiwei="Bangzhong";
}
}
bool cmp2(node x,node y)
{
if(level(x.zhiwei)==level(y.zhiwei))
if(x.lv==y.lv) return x.id<y.id;
else return x.lv>y.lv;
else return level(x.zhiwei)<level(y.zhiwei);
}
signed main()
{
cout<<a[0].name<<a[0].zhiwei;
n=read();
for(int i=1;i<=n;i++)
{
cin>>a[i].name>>a[i].zhiwei;
a[i].banggong=read(),a[i].lv=read();
a[i].id=i;
if(i<=3) cout<<a[i].name<<' '<<a[i].zhiwei<<' '<<a[i].lv<<endl;
}
sort(a+4,a+n+1,cmp);
bian();
/*for(int i=4;i<=n;i++)
cout<<a[i].name<<' '<<a[i].zhiwei<<' '<<a[i].lv<<endl;*/
sort(a+4,a+n+1,cmp2);
for(int i=4;i<=n;i++)
cout<<a[i].name<<' '<<a[i].zhiwei<<' '<<a[i].lv<<endl;
return 0;
}
经过实验,按帮贡排序,没有问题 所以有没有好心人谤满看一下后面的这一段 样例过的 自己的样例也过了
回复
共 6 条回复,欢迎继续交流。
正在加载回复...