#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){ return a->index-b->index; } else if(a->apple==b->apple) return b->li-a->li; else return b->apple-a->apple; } 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.