/* 문제 : [2217] 로프
[input]
2
10
15
[output]
20
[설명]
로프를 병렬로 연결하면 각각의 로프에 걸리는 중량을 나눌 수 있다
k개의 로프를 사용하여 중량이 w인 물체를 들어올릴 때,
각각의 로프에는 w/k 만큼의 중량이 걸리게 된다.
이 로프들을 이용하여 들어올릴 수 있는 물체의 최대 중량을 구해라
모든 로프를 사용해야 할 필요는 없다. 단, 각각의 로프는 한 개씩만 존재한다.
*/
#include <iostream>
#include <set>
using namespace std;
int main()
{
multiset<int> rope;
int max = -1; // 최대 중량
int n; // 로프의 개수
cin >> n;
for (int i = 0, k; i < n; i++) {
cin >> k;
rope.insert(k);
}
multiset<int>::reverse_iterator ri = rope.rbegin();
int i = 1;
while (ri != rope.rend()) {
if (max < *ri * i) {
max = *ri * i;
}
ri++;
i++;
}
cout << max << endl;
return 0;
}