View Code of Problem 5

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