View Code of Problem 5

#include<cstdio>
#include <algorithm>
using namespace std;

const int maxn = 100010;
struct lan{
	int apple,pear;
	int id;
}Lan[maxn];

bool cmp(lan a,lan b){
	if(a.apple != b.apple) return a.apple > b.apple;
	else if(a.pear != b.pear) return a.pear > b.pear;
	else return a.pear < b.id;
}

int main(){
	int t;
	scanf("%d",&t);
	while(t--){
		int m,n;
		scanf("%d%d",&n,&m);
		for(int i = 0;i < n;i++){
			scanf("%d%d",&Lan[i].apple,&Lan[i].pear);
			Lan[i].id = i;
		}
		sort(Lan,Lan+n,cmp);
		for(int i = 0;i < m;i++){
			printf("%d",Lan[i].id);
			if(i != m-1) printf(" ");
		}
		printf("\n");
	}
} 

Double click to view unformatted code.


Back to problem 5