View Code of Problem 5

#include<iostream>
#include<algorithm>
using namespace std;
struct Node{
	int id;
	int apple;
	int pear;
};
bool cmp(Node a,Node b){
	if(a.apple!=b.apple){
		return a.apple>b.apple;
	}else if(a.apple==b.apple){ 
		return a.pear>b.pear;
	}else if(a.pear==b.pear){
		return a.id<b.id;
	}
}
int main(){
	int t;
	cin>>t;
	while(t--){
		int n,m;
		scanf("%d %d",&n,&m);
		Node node[n];
		for(int i=0;i<n;i++){
			scanf("%d %d",&node[i].apple,&node[i].pear);
			node[i].id=(i+1);
		}
		sort(node,node+n,cmp);
		
		for(int j=0;j<m;j++){
			printf("%d",node[j].id);	
			if(j!=m-1){
				printf(" ");
			}
		}
		cout<<endl;
	}
	
	
	
	return 0;
} 

Double click to view unformatted code.


Back to problem 5