View Code of Problem 5

#include<stdio.h>
int main()
{
	int t,n,m[10],i,j,k;
	int a[100000],b[100000],max[10][100000],flag[100000];
	scanf("%d",&t);
	for ( i = 0; i < t; i++)	//²âÊÔ´ÎÊý
	{
		scanf("%d%d",&n,&m[i]);
		for ( j = 0; j < n; j++)	
			scanf("%d%d",&a[j],&b[j]);
		for ( k = 0; k < n; k++)	//×¼±¸¿ªÊ¼Ñ¡ÔñÀº×Ó
				flag[k] = 0;
		for ( j = 0; j < m[i]; j++)	//Ñ¡ÔñÀº×ÓÊý
		{
 			for ( k = 0, max[i][j] = 0; k < n; k++)	//Ñ¡Ôñ×î´óa
				if ( a[max[i][j]] < a[k] && flag[k] == 0 )
				{
					flag[max[i][j]] = 0;
					max[i][j] = k;
					flag[k] = 1;
				}
				else if ( a[max[i][j]] == a[k] && flag[k] == 0 )
				{  
					if ( b[max[i][j]] < b[k] )
					{
						flag[max[i][j]] = 0;
						max[i][j] = k;
						flag[k] = 1;
					}
				}
		}
	}
	for ( i = 0; i < t; i++)
	{
		for ( j = 0; j < m[i]; j++)
			printf("%d ",max[i][j]+1);
		printf("\n");
	}
	return 0;
}

Double click to view unformatted code.


Back to problem 5