View Code of Problem 5

#include<stdio.h>
#include<stdlib.h>
typedef struct{
	int a;
	int b;
	int n;
}s; 
int main(){
	int cmp(const void *a,const void *b);
	int k;
	scanf("%d",&k);
	while(k-->0){
		int m,n;
		scanf("%d %d",&m,&n);
		s a[m];
		for(int i=0;i<m;i++){
			scanf("%d %d",&a[i].a,&a[i].b);
			a[i].n=i+1;
		}
		qsort(a,m,sizeof(s),cmp);
		for(int i=0;i<n-1;i++){
			printf("%d ",a[i].n);
		}
		printf("%d\n",a[n-1].n);
	}
  return 0;
}
int cmp(const void *a,const void *b){
	s *pa=(s *)a;
	s *pb=(s *)b;
	if(pa->a==pb->a){
		if(pa->b==pb->b)
		return pa->n-pb->n;
		return pb->b-pa->b;
	}
	return pb->a-pa->a;
}

Double click to view unformatted code.


Back to problem 5