#include <stdio.h> #include <stdlib.h> #include <math.h> #include <string.h> typedef struct node{ int num; int apple; int pear; }node; int comp(const void* a,const void* b) { node* c = (node*)a; node* d = (node*)b; if(c->apple == d->apple) { if(c->pear == d->pear) return c->num - d->num; else return d->pear - c->pear; } else return d->apple - c->apple; } int main(void) { int t,m,n; scanf("%d",&t); while(t--) { scanf("%d%d",&m,&n); int i,j,k; node fruit[1000]; for(i = 0;i < m;i++) { scanf("%d%d",&fruit[i].apple,&fruit[i].pear); fruit[i].num = i; } qsort(fruit,m,sizeof(node),comp); for(i = 0;i < n;i++) { if(i == n -1) printf("%d\n",fruit[i].num + 1); else printf("%d ",fruit[i].num + 1); } } return 0; } |
Double click to view unformatted code.