View Code of Problem 5

#include "stdio.h"

struct data
{
	int a;
	int b;
	int num;
};

void main()
{
	struct data s[10000],temp;
	int n,m;
	int i,j,k;
	int t;
	scanf("%d",&t);
	for(i=0;i<t;i++)
	{
		for(j=0;j<10000;j++)
		{
			s[j].a=0;s[j].b=0;s[j].num=0;
			
		}
		scanf("%d%d",&n,&m);
		for(j=0;j<n;j++)
		{
			scanf("%d%d",&s[j].a,&s[j].b);
			s[j].num=j;
		}
		for(j=0;j<n;j++)				//排序a
		{
			for(k=0;k<n-j-1;k++)
			{		
				if(s[k].a<s[k+1].a)
				{			
					temp=s[k];s[k]=s[k+1];s[k+1]=temp;
				}
				
			}	
		}
		
		for(j=0;j<n;j++)				//排序b	
		{
			for(k=0;k<n-j-1;k++)
			{
				if(s[k].a==s[k+1].a)
				{		
					if(s[k].b<s[k+1].b)
					{
						temp=s[k];s[k]=s[k+1];s[k+1]=temp;
					}
					
				}
			}
		}
		
		for(j=0;j<m;j++)
		{
			if(j+1==m)
				printf("%d",s[j].num+1);
			else
				printf("%d ",s[j].num+1);			
		}
		printf("\n");
	}
}

Double click to view unformatted code.


Back to problem 5