View Code of Problem 5

#include<algorithm>
#include<cstdio>
using namespace std;
struct fruct{
	int a,b,num;
}ff[100100];
bool cmp(fruct a,fruct b){
	if(a.a!=b.a) return a.a>b.a;
	if(a.b!=b.b) return a.b>b.b;
	return a.num<b.num;
}
int main(){
	int t;
	scanf("%d",&t);
	for(int i=0;i<t;i++){
		int n,m;
		scanf("%d%d",&n,&m);
		for(int j=1;j<=n;j++){
			scanf("%d%d",&ff[j].a,&ff[j].b);
			ff[j].num=j;
		}
		sort(ff+1,ff+n+1,cmp);
		for(int j=1;j<=m;j++){
			if(j==1) printf("%d",ff[j].num);
			else printf(" %d",ff[j].num);
		}
		printf("\n");
	}
	return 0;
} 

Double click to view unformatted code.


Back to problem 5