View Code of Problem 5

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
struct fruit{
	int apple;
	int pear;
	int p;
}f[100010];
bool cmp(fruit a, fruit b){
	if(a.apple==b.apple&&a.pear==b.pear) return a.p<b.p;
	else 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", &f[i].apple, &f[i].pear);
			f[i].p = i+1;
		}
		sort(f, f+n, cmp);
		for(int i = 0;i < m;i++){
			if(i>0) printf(" ");
			printf("%d", f[i].p);
		}
		printf("\n");
	}

	return 0;
}

Double click to view unformatted code.


Back to problem 5