내림차순으로 정렬한 후 arr[i] * i (0 < i <= N)를 계산하여 큰 값을 찾는다.
#include <bits/stdc++.h>
using namespace std;
#define MAX 100000
int main() {
std::ios::sync_with_stdio(false);
int N;
long long cur = 0;
int arr[MAX];
cin >> N;
for(int i = 0; i < N; i++)
cin >> arr[i];
sort(arr, arr + N, greater<int>());
for(int i = 0; i < N; i++) {
if(cur < arr[i] * (i + 1))
cur = arr[i] * (i + 1);
}
cout << cur;
}