BC # 32 :
打 BC 的时候没看全三个关键字,WA 了五发,花了近一小时,问了一下才发现少看一个条件,于是顺利给跪。
题意:给出若干城市的两次空气质量,首先按空气质量差排序,若相等则按第二次排序,再相等则按输入顺序排。
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std; struct p{
int a,l,t;
}a[]; bool cmp(p a1,p a2){
if(a1.a==a2.a&&a1.t==a2.t) return a1.l<a2.l;
if(a1.a==a2.a) return a1.t<a2.t;
return a1.a>a2.a;
} int main(){
int n;
while(scanf("%d",&n)!=EOF){
int q,i;
for(q=;q<n;q++){
int b,c;
scanf("%d%d",&b,&c);
a[q].l=q;a[q].a=b-c;a[q].t=c;
}
int j,t;
sort(a,a+n,cmp);
for(i=;i<n;i++){
printf("%d",a[i].l);
if(i==n-)printf("\n");
else printf(" ");
}
}
return ;
}