View Code of Problem 5

#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#define LL int
using namespace std;

typedef struct Node{
	int a;
	int b;
	int id;
	bool operator < (const Node &x)const{
		return a>x.a;
	}
}FF;
FF array[100005];
int t;
int n,m;
int key,temp_a,temp_b,temp_id;
int main(void){
	cin>>t;
	while(t--){
		cin>>n>>m;
		for(int i=1;i<=n;i++){
			cin>>array[i].a>>array[i].b;
			array[i].id=i;
		}
		sort(array+1,array+n+1);
		for(int i=0;i<m;i++){
			int key=1;
			while(array[key].id==0) key++;
			
			temp_a=array[key].a;
			temp_b=array[key].b;
			temp_id=array[key].id;
			for(int j=1;j<=n;j++){
				if(array[j].a<temp_a)
					break;
			if(array[j].id !=0){
				if(array[j].b>temp_b){
					temp_id=array[j].id;
					temp_b=array[j].b;
				}
				if((array[j].b==temp_b)&&(array[j].id<temp_id))
					temp_id=array[j].id;
			}
		}
			printf("%d",temp_id);
			if(i!=(m-1))
				printf(" ");
			for(int i=0;i<n;i++)
				if(array[i].id==temp_id){
					array[i].id=0;
					break;
				}
		}
		printf("\n");
	}
	return 0;
}

Double click to view unformatted code.


Back to problem 5