很简单的一道题,先从小到大排序,依次比较最小值*当前绳子数目,得出最大值

#include "stdio.h"
#include 
"stdlib.h"
long rope[10001];

int cmp(const void *a,const void *b)
{
    
long *x=(long *)a;
    
long *y=(long *)b;
    
return  *x-*y;
}


int main()
{
    
int t,m,i,j;
    
long max;
    scanf(
"%d",&t);
    
while(t--)
    
{
        max
=0;
        scanf(
"%d",&m);
        
for(i=0;i<m;i++)
            scanf(
"%d",&rope[i]);
        qsort(rope,m,
sizeof(long),cmp);
        
for(j=m,i=0;j>0;i++,j--)
        
{
            
if(max < rope[i] * j )
                max 
= rope[i] * j;
        }

        printf(
"%ld\n",max);
    }

    
return 0;
}