View Code of Problem 5

#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<algorithm>
#include<iostream>
using namespace std;
typedef long long ll;
struct node{
	int a,b,id;
}s[100010];
int cmp(node a,node b){
	  if(a.a!=b.a) return a.a>b.a;
	  else if(a.b!=b.b) return a.b>b.b;
}
int main(){
	int t,n,m,i,a,b;
	scanf("%d",&t);
	while(t--){
		scanf("%d%d",&n,&m);
		for(i=0;i<n;i++){
			scanf("%d%d",&s[i].a,&s[i].b);
		}
		for(i=0;i<n;i++){
			s[i].id=i+1;
		}
		sort(s,s+n,cmp);
		for(int j=0;j<m;j++){
			if(j==m-1){
				printf("%d\n",s[j].id);
			}
			else{
				printf("%d ",s[j].id);
			}
		}
		
	}
	return 0;
}
 

Double click to view unformatted code.


Back to problem 5