#include <stdio.h> #include <stdlib.h> #include <math.h> #include <string.h> typedef struct _basket { int i; int a; int b; }Basket; #define N 10 int cmpst(const void *a, const void *b) { Basket *obj1 = (Basket *)a; Basket *obj2 = (Basket *)b; if(obj1->a != obj2->a) return obj2->a - obj1->a; else if(obj1->b != obj2->b) return obj2->b - obj1->b; else return obj1->i - obj2->i; } int main() { int t,n,m,a,b; int i; Basket obj[N]={0}; if(freopen("c:\\input.txt", "rt", stdin)==0) { } scanf("%d",&t); while (t-->0) { scanf("%d %d",&n,&m); i=0; while (i<n) { scanf("%d %d",&a,&b); obj[i].i=i+1; obj[i].a=a; obj[i].b=b; i++; } qsort(obj,n,sizeof(obj[0]),cmpst); for (i=0;i<m;i++) { if(i==0) { printf("%d",obj[i].i); } else { printf(" %d",obj[i].i); } } printf("\n"); } return 0; } |
Double click to view unformatted code.