T246085 排队 不确定大佬们能不能看见,可以的帮个忙
3个RE,一个对,其余WA
代码如下
#include<iostream>
#include<bits/stdc++.h>
#include<algorithm>
using namespace std;
struct a{
int bh;
int xb;
int yan;
int qian;
};
a n[100000];
a ng[100000];
a nb[100000];
int wg,wb;
bool cmpg(a x,a y){
if(x.yan>y.yan){
return x.yan>y.yan;
}
else if(x.qian<y.qian){
return x.qian<y.qian;
}
else{
return x.bh<y.bh;
}
}
bool cmpb(a x,a y){
if(x.qian>y.qian){
return x.qian>y.qian;
}
else if(x.yan<y.yan){
return x.yan<y.yan;
}
else{
return x.bh<y.bh;
}
}
int q;
int main(){
cin>>q;
for(int i=1;i<=q;i++){
cin>>n[i].xb>>n[i].yan>>n[i].qian;
n[i].bh=i;
}
for(int i=1;i<=q;i++){
if(n[i].xb==0){
wg++;//女
ng[wg].bh=n[i].bh;
ng[wg].qian=n[i].qian;
ng[wg].xb=n[i].xb;
ng[wg].yan=n[i].yan;
}
if(n[i].xb==1){
wb++;//男
nb[wb].bh=n[i].bh;
nb[wb].qian=n[i].qian;
nb[wb].xb=n[i].xb;
nb[wb].yan=n[i].yan;
}
}
int sl=0;
sort(ng,ng+wg,cmpg);
sort(nb,nb+wb,cmpb);
sl=min(wg,wb);
for(int i=1;i<=sl;i++){
cout<<nb[i].bh<<" "<<nb[i].xb<<" "<<nb[i].yan<<" "<<nb[i].qian;
cout<<endl;
cout<<ng[i].bh<<" "<<ng[i].xb<<" "<<ng[i].yan<<" "<<ng[i].qian;
cout<<endl;
}
if(wb>sl){
for(int i=wb;i<=wb;i++){
cout<<nb[i].bh<<" "<<nb[i].xb<<" "<<nb[i].yan<<" "<<nb[i].qian;
cout<<endl;
}
}
else{
for(int i=wg;i<=wg;i++){
cout<<ng[i].bh<<" "<<ng[i].xb<<" "<<ng[i].yan<<" "<<ng[i].qian;
cout<<endl;
}
}
return 0;
}