在线等!急!
2023-08-29 12:58:26
发布于:北京
78阅读
0回复
0点赞
用了结构体排序,为什么1号和2号测试点会wa?在线等!急!下附代码:
#include<iostream>
#include<algorithm>
using namespace std;
struct node{
int wge,lev,bm,num;//wge薪资,lev职位等级,bm所属部门,num员工编号
}q[100005];
bool cmp(node a,node b){
if(a.wge!=b.wge) return a.wge>b.wge;
if(a.lev!=b.lev) return a.lev>b.lev;
if(a.bm!=b.bm) return a.wge<b.wge;
return a.num<b.num;
}
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>q[i].num>>q[i].wge>>q[i].bm>>q[i].lev;
}
sort(q+1,q+n+1,cmp);
for(int i=1;i<=n;i++){
cout<<q[i].num<<' ';
}
}
全部评论 2
排序规则的第三个条件错了。在比较部门编号时,这个"a.wge < b.wge"实际上应该是"a.bm < b.bm"。因为题目要按照部门编号从小到大排序,而不是薪资。
2024-02-08 来自 浙江
0对了回下
2024-02-08 来自 浙江
0感谢大佬
2024-02-08 来自 江苏
0不谢
2024-02-08 来自 浙江
0
看不出来啊(╯°□°)╯︵ ┻━┻
2024-02-08 来自 广东
0
有帮助,赞一个