#include<stdio.h> #include<iostream> #include <algorithm> using namespace std; struct Fruit{ int numa; int numb; int seq; }; bool cmp(const Fruit &a,const Fruit &b){ if(a.numa==b.numa){ if(a.numb==b.numb){ return a.seq<b.seq; } else return a.numb>b.numb; } else return a.numa>b.numa; } int main(){ int t,n,m; struct Fruit fruit[100000]; cin >> t; for(int i=0;i<t;i++){ cin>>n>>m; for(int j=0;j<n;j++){ cin>>fruit[j].numa>>fruit[j].numb; fruit[j].seq=j+1; //cout<<fruit[j].numa<<fruit[j].numb<<endl; //scanf("%d %d\n",&fruit[j].numa,&fruit[j].numb); //printf("%d %d\n",fruit[j].numa,fruit[j].numb); } sort(fruit,fruit+n,cmp); for(int k=0;k<m;k++){ if(k!=0){ cout<<" "; } cout<<fruit[k].seq; } cout<<endl; } /*printf("%d %d\n",fruit[0].numa,fruit[0].numb); printf("%d %d\n",fruit[1].numa,fruit[1].numb); printf("%d %d\n",fruit[2].numa,fruit[2].numb);*/ } |
Double click to view unformatted code.