CF1148D-Dirty Deeds Done Dirt Cheap

这轮CF怎么充满了替身啊233(这是场只有替身使者才能看见的比赛)

题解可以看官方的

这里就是记录下自己当初是怎么没做上的233

忽视掉了分类后pair本身就会带有的性质(a<b or a>b)

结果没发现排下序就好了。。。

可能当时就没想到自己能做出来D吧。。所以就理所当然地放弃了

现在看来,当题卡住的时候,不要怀疑自己,至少要想想有没有什么遗漏的性质才行……

 1 #include<bits/stdc++.h>
 2 #define N 300005
 3 using namespace std;
 4 int n,an,bn;
 5 struct PP{
 6     int a,b,id;
 7 }A[N],B[N];
 8 bool cmpa(PP A,PP B){return A.a>B.a;}
 9 bool cmpb(PP A,PP B){return A.b<B.b;}
10 int main(){
11     scanf("%d",&n);
12     for(int i=1,u,v;i<=n;i++){
13         scanf("%d%d",&u,&v);
14         if(u<v) A[++an]={u,v,i};
15         else B[++bn]={u,v,i};
16     }
17     if(an>bn){
18         printf("%d\n",an);
19         sort(A+1,A+1+an,cmpa);
20         printf("%d",A[1].id);
21         for(int i=2;i<=an;i++)printf(" %d",A[i].id);
22     }
23     else{
24         printf("%d\n",bn);
25         sort(B+1,B+1+bn,cmpb);
26         printf("%d",B[1].id);
27         for(int i=2;i<=bn;i++)printf(" %d",B[i].id);
28     }
29     return 0;
30 }
View Code

 

posted @ 2019-06-11 16:12  瞬闪影  阅读(329)  评论(0编辑  收藏  举报