View Code of Problem 5

// t测试组数 共n个篮子 选m个篮子 a表示苹果数量 b表是梨子数量
#include <stdio.h>
int main()
{
	int t,n,m;// t是测试组的组数,n是篮子数,m是选取的篮子数
	int i,j;
	int a[100000][2];//用二维数组存放苹果和梨子数目 a[][0]表示苹果 a[][1]表示梨子
	int k=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]);
		}
		for(i=0;i<m;i++)  //计数m次取篮子的循环
		{
			k=0;
			for(j=1;j<n;j++)  //比较苹果数的循环 
			{
				if(a[k][0]<a[j][0]) //找出苹果数目最多的篮子
				{
					k=j;
				}
				else if(a[k][0]==a[j][0]&&a[k][1]<a[j][1]) //苹果数目相同则找出梨子数多的
					k=j;
			}
			printf("%d",k+1);//每找出一个篮子就打印一次 直到m次结束
			if(i<m-1)
				printf(" ");
			a[k][0]=0; //取出篮子之后就把该篮子的苹果数目改为零 防止下次再被重复选
		}
		printf("\n");
	}
	return 0;
} 

Double click to view unformatted code.


Back to problem 5