View Code of Problem 5

#include <stdio.h>
#include <stdlib.h>
#include<ctype.h>
#include<string.h>
#include<math.h>
#include<stdbool.h>
int main()
{
	int  t, n, m, i, j, k;
	int max;
	int a[10000][2] = { 0 };
	int b[10000] = { 0 };
	scanf("%d", &t);
	while (t--)
	{
		scanf("%d%d", &n, &m);
		for (i = 0; i < n; i++)
		{
			scanf("%d%d", &a[i][0], &a[i][1]);
		}
		
			max = 0;
			k = 0;
			for (i = 0; i < n; i++)
			{
				if (a[max][0] < a[i][0])
				{
					max = i;
					b[k++] = max + 1;
				}
				else if (a[max][0] == a[i][0])
				{
					if (a[max][1] < a[i][1])
						max = i;
					b[k++] = max + 1;
				}
			}
			k--;
			while (m--)
			{
				printf("%d", b[k--]);
				if (m > 0)
					printf(" ");
			}
		
		printf("\n");
	}
	return 0;
}

Double click to view unformatted code.


Back to problem 5