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