n개를 고른다면 n개의 수 중 가장 작은 수 n을 한 값이 최대 중량인데, 주의할 점은 모든 로프를 사용하지 않아도 된다는 점이다.
즉, k개를 선택했다면 k개의 수 중 가장 작은 수 k 가 최대 중량이다.
n은 최대 10만개다.
1) 정렬한다
2) max = array[i] (n - i) > max ? array[i] (n - i) : max;
3) 끝
namespace Program
{
class Program
{
static void Main(string[] args)
{
using var input = new System.IO.StreamReader(Console.OpenStandardInput());
using var print = new System.IO.StreamWriter(Console.OpenStandardOutput());
int intInput() => int.Parse(input.ReadLine());
int n = intInput();
int[] array = new int[n];
for(int i = 0; i < n; i++)
{
array[i] = intInput();
}
Array.Sort(array);
int max = 0;
for(int i = 0; i < n; i++)
{
max = array[i] * (n - i) > max ? array[i] * (n - i) : max;
}
print.WriteLine(max);
}
}
}