쉬운난이도의 그리디 문제였다.
로프들의 값을 정렬하면 거의다 구한거나 다름없다.
어차피 가장 적은 중량을 들 수 있는 로프에 따라 최대중량이 결정된다.
(가장 작은 로프는 자신의 값을 넘어서 들 수 없기 때문)
그래서 (사용중인 로프의 개수 * 사용중인 로프 중 가장 작은 값)
로 구한다.
코드를 작성하기 편하게 역으로 정렬했다.
n = int(input())
rope = [int(sys.stdin.readline()) for _ in range(n)]
rope.sort(reverse=True)
W, k = 0, 0
for r in rope:
k += 1
W = max(r * k, W)
print(W)