View Code of Problem 5

#include<cstdio>
#include<algorithm>
using namespace std;
 struct lan
 {
    int num_apple; 
    int num_pear;
    int id;
 }lanzi[20];
 
 bool cmp(lan a,lan b)
 {
    if(a.num_apple > b.num_apple)
        return true;
    else if(a.num_apple == b.num_apple && a.num_pear > b.num_pear)
        return true;
    else if(a.num_apple == b.num_apple && a.num_pear > b.num_pear && a.id > b.id)
        return true;
    else
        return false;
 }
int main()
{
    int t,n,m;
    scanf("%d",&t);
    for(int i = 0;i<t;i++)
    {
        scanf("%d %d",&n,&m);
        for(int j = 0;j<n;j++)
        {
            scanf("%d %d",&lanzi[j].num_apple,&lanzi[j].num_pear);
            lanzi[j].id = j+1;
        }

        sort(lanzi,lanzi+n,cmp);

        for(int k = 0;k < m;k++)
        {
            if(k <= m-1)
                printf("%d ",lanzi[k].id);
            else
                printf("%d",lanzi[k].id);
        }
        printf("\n");
    }
    return 0;
}

Double click to view unformatted code.


Back to problem 5