#include<stdio.h> #include<stdlib.h> typedef struct{ int a; int b; int l; }s; int main(){ int cmp(const void *a,const void *b); int t; scanf("%d",&t); while(t-->0){ int m,n; scanf("%d %d",&n,&m); s a[n]; for(int i=0;i<n;i++){ scanf("%d %d",&a[i].a,&a[i].b); a[i].l=i+1; } qsort(a,n,sizeof(s),cmp); for(int i=0;i<m-1;i++){ printf("%d ",a[i].l); } printf("%d\n",a[m-1].l); } return 0; } int cmp(const void *a,const void *b){ s *pa=(s *)a; s *pb=(s *)b; if(pa->a==pb->a&&pb->b==pa->b) return pa->l-pb->l; if(pa->a==pb->a){ return pb->b-pa->b; } return pb->a-pa->a; } |
Double click to view unformatted code.