View Code of Problem 5

#include<bits/stdc++.h>
using namespace std;
struct fruit{
	int a;
	int b;
	int num;
};
bool cmp(fruit x,fruit y)
{
	if(x.b==y.b) return x.num>y.num;
	else if(x.a>x.b&&y.a>y.b) return x.a<y.a;
	else return x.b<y.b; 
}
int main()
{
	int t,n,m;
	fruit d[100010];
	cin>>t;
	while(t--)
	{
		cin>>n>>m;
		for(int i=0;i<n;i++)
		{
			cin>>d[i].a>>d[i].b;
			d[i].num=i;
		}
		sort(d,d+n,cmp);
		for(int i=0;i<m;i++)
		{
			if(i==0)
			cout<<d[i].num+1;
			else
			cout<<" "<<d[i].num+1;
		}
		cout<<endl;
	}
	return 0;
}

Double click to view unformatted code.


Back to problem 5