View Code of Problem 5

#include <stdio.h>

typedef struct node{
    int apple,pear,index;
}fruit;

int comp(fruit* a,fruit* b)
{
    if(a->apple == b->apple)
        return b->pear - a->pear;
    return b->apple - a->apple;
}

int main(void)
{
    int t,n,m;
    scanf("%d",&t);
    while(t--)
    {
        while(scanf("%d%d",&n,&m) != EOF)
        {
            int i;
            fruit ft[100000];
            for(i = 0;i < n;i++)
            {
                ft[i].index = i;
                scanf("%d%d",&ft[i].apple,&ft[i].pear);
            }
            qsort(ft,n,sizeof(fruit),comp);
            for(i = 0;i < m;i++)
            {
                if(i == m - 1)
                    printf("%d\n",ft[i].index + 1);
                else
                    printf("%d ",ft[i].index + 1);
            }
        }
    }
    return 0;
}

Double click to view unformatted code.


Back to problem 5