View Code of Problem 5

#include<cstdio>
#include<algorithm>
#include<cstring>

using namespace std;

typedef struct lanzi{
    int apple;
    int pear;
    int no;
}lanzi;

bool cmp(lanzi a,lanzi b){
    if(a.apple != b.apple) return a.apple>b.apple;
    else {
        if(a.pear != b.pear) return a.pear>b.pear;
        else return a.no<b.no;
    }
}

int main(){
    int t;
    scanf("%d",&t);
    while(t--){
        int n,m;
        scanf("%d %d",&n,&m);
        lanzi arr[100000];
        for(int i=0;i<n;i++){
            scanf("%d %d",&arr[i].apple,&arr[i].pear);
            arr[i].no = i+1;
        }
        sort(arr,arr+n,cmp);

        for(int j=0;j<m;j++){
            if(j!=m-1)  printf("%d ",arr[j].no);
            else    printf("%d",arr[j].no);
        }
        printf("\n");
    }

    return 0;
}

Double click to view unformatted code.


Back to problem 5