View Code of Problem 5

#include<stdio.h>
#include<stdlib.h>
typedef struct{
	int apple;
	int li;
	int index;
}Fruit;
int cmp(const void *_a,const void *_b){
	Fruit* a=(Fruit*)_a;
	Fruit* b=(Fruit*)_b;
	if(a->apple==b->apple&&a->li==b->li){
		return a->index-b->index;
	}
	else if(a->apple==b->apple)
		return b->li-a->li;
	else
		return b->apple-a->apple;
}
int main(void){
	int t;
	scanf("%d",&t);
	while(t--){
		int n,m;
		scanf("%d %d",&n,&m);
		Fruit fru[n];
		for(int i=0;i<n;i++){
			scanf("%d %d",&fru[i].apple,&fru[i].li);
			fru[i].index=i+1;
		}
		qsort(fru,n,sizeof(fru[0]),cmp);
		for(int i=0;i<m;i++){
			if(i!=m-i)
			printf("%d ",fru[i].index);
			else
			printf("%d",fru[i].index);
		}
		printf("\n");
	}
} 

Double click to view unformatted code.


Back to problem 5