您好,欢迎来到汇智旅游网。
搜索
您的当前位置:首页CodeForces - 1148D(思维+规律)

CodeForces - 1148D(思维+规律)

来源:汇智旅游网

题目链接:

 

思路:

只要考虑最值+排序就好了。

 

代码:

#include <bits/stdc++.h>
using namespace std;
const int N = 3e5+10;
int a[N],b[N];
#define P pair <int,int>
vector <pair <int,int> > vc[2];
int main(void)
{
    int n,x,y,t1 = 0,t2 = 0;
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        scanf("%d%d",&a[i],&b[i]);
        if(a[i] > b[i]) vc[0].push_back(P(a[i],i)),t1++;
        else vc[1].push_back(P(b[i],i)),t2++;
    }
    printf("%d\n",max(t1,t2));
    if(t1 >= t2)
    {
        sort(vc[0].begin(),vc[0].end());
        for(int i=0;i<t1;i++){
            if(i!=0) printf(" ");
            printf("%d",vc[0][i].second);
        }
    }
    else{
        sort(vc[1].begin(),vc[1].end());
        for(int i=t2-1;i>=0;i--){
            if(i!=t2-1) printf(" ");
            printf("%d",vc[1][i].second);
        }
    }
    return 0;
}

 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- hzar.cn 版权所有 赣ICP备2024042791号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务