View Code of Problem 61

#include <stdio.h>
int main()
{
	int n,t,i,j,temp;
	int a[1000];
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d",&n);
		for(i=0;i<n;i++)
			scanf("%d",&a[i]);
		for(i=0;i<n;i++)      //先把绳子按照能承受的重量从大到小排列****
		{
			for(j=i+1;j<n;j++)
			{
				if(a[i]<a[j])
				{
					temp=a[i];
					a[i]=a[j];
					a[j]=temp;
				}
			}
		}
		int max=a[0];       //一开始因为a[0]的绳子承受重量是最大的
		for(i=1;i<n;i++)    //从a[1]开始循环 比较没加一根绳子能承受的总重量会不会比前面承受的重量多;***
		{
			if(a[i]*(i+1)>max)
				max=a[i]*(i+1);
		}
		printf("%d\n",max);
	}
	return 0;
}

Double click to view unformatted code.


Back to problem 61