https://www.acmicpc.net/problem/2217
n개의 로프는 버틸 수 있는 중량이 존재한다.
단, 동시에 들어올리면 중량은 w/n으로 줄어든다.
들 수 있는 최대 중량을 구하면 된다.
처음엔 중량이 가장 작은 로프 * n
을 하면 되는 게 아닌가 하고 간단하게 생각했다.
3
10
20
30
answer : 40
(10, 20, 30)
세 개의 로프로는가장 작은 로프인 10 * 3
으로 최대 30까지 들 수 있는게 맞다.
하지만 문제에서 모든 로프를 사용할 필요는 없다고 되어있다.
(20, 30)
이 두개의 로프로는 가장 작은 로프인 20 * 2
으로 최대 40까지 들 수 있다.
로프의 개수를 줄여나가면서 확인하는 것이 중요하다.
import sys
input = sys.stdin.readline
n = int(input())
result = []
for _ in range(n):
result.append(int(input()))
# 가장 작은 로프부터 비교하기 위해 정렬
result.sort()
answer = 0
for i in result:
answer = max(answer, i * n)
n -= 1
print(answer)