View Code of Problem 5

#include<bits/stdc++.h>
using namespace std;
struct furit{
	int apple;
	int pear;
	int p;
}fu[100010];
bool cmp(furit a, furit b){
//	if(a.apple!=b.apple) return a.apple>b.apple;
//	else if(a.pear!=a.pear) return a.pear>a.pear;
//	else return a.p<b.p;
	if(a.apple==b.apple) return a.pear>b.pear;
	else return a.apple>b.apple;
}
int main (){
	int t, n, m;
	scanf("%d", &t);
	while(t--){
		scanf("%d%d", &n, &m);
		for(int i = 0;i < n;i++){
			scanf("%d%d", &fu[i].apple, &fu[i].pear);
			fu[i].p = i+1;
		}
		sort(fu, fu+n, cmp);
		for(int i = 0;i < m;i++){
			if(i>0) printf(" ");
			printf("%d", fu[i].p);
		}
		printf("\n");
	}

	return 0;
}

Double click to view unformatted code.


Back to problem 5