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 }