View Code of Problem 5

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

Double click to view unformatted code.


Back to problem 5