View Code of Problem 5

#include<stdio.h>
#include<string.h>
#include<math.h>
#include<algorithm>

using namespace std;
typedef struct lan {
	int apple;
	int pear;
	int num;
} lan;

bool cmp(lan a,lan b) {
	if(a.apple>b.apple) {
		return true;
	} else  if(a.apple<b.apple) {
		return false;
	} else {
		if(a.pear>b.pear) {
			return true;
		} else if(a.pear<b.pear) {
			return false;
		} else {
			return a.num>b.num;
		}
	}
}

int main() {
	int t;
	int i,j;
	scanf("%d",&t);
	while(t--) {
		int n,m;
		lan  l[100001];
		scanf("%d %d",&n,&m);
		for(i=0; i<n; i++) {
			scanf("%d %d",&l[i].apple,&l[i].pear);
			l[i].num=i;
		}
		sort(l,l+n,cmp);
		for(i=0; i<m; i++) {
			if(i==0) {
				printf("%d",l[i].num+1);
			} else {
				printf(" %d",l[i].num+1);
			}
		}
		printf("\n");
	}
}

Double click to view unformatted code.


Back to problem 5