View Code of Problem 5

#include<stdio.h>
#include<iostream>
#include <algorithm>
using namespace std;
struct Fruit{
	int numa;
	int numb;
	int seq;
};	
bool cmp(const Fruit &a,const Fruit &b){
	if(a.numa==b.numa){
		if(a.numb==b.numb){
			return a.seq<b.seq;
		}
		else return a.numb>b.numb;
	}
	else return a.numa>b.numa;
}
int main(){
	int t,n,m;
	struct Fruit fruit[100000];
	cin >> t;
	for(int i=0;i<t;i++){
		cin>>n>>m;
		for(int j=0;j<n;j++){
			cin>>fruit[j].numa>>fruit[j].numb;
			fruit[j].seq=j+1;
			//cout<<fruit[j].numa<<fruit[j].numb<<endl;
			//scanf("%d %d\n",&fruit[j].numa,&fruit[j].numb);
			//printf("%d %d\n",fruit[j].numa,fruit[j].numb);
		}
		sort(fruit,fruit+n,cmp);
		for(int k=0;k<m;k++){
			if(k!=0){
				cout<<" ";
			}
			cout<<fruit[k].seq;
		}	
		cout<<endl;
	}
	/*printf("%d %d\n",fruit[0].numa,fruit[0].numb);
	printf("%d %d\n",fruit[1].numa,fruit[1].numb);
	printf("%d %d\n",fruit[2].numa,fruit[2].numb);*/
}

Double click to view unformatted code.


Back to problem 5