Pagini recente » Cod sursa (job #453707) | Cod sursa (job #113550) | Cod sursa (job #1792215) | Cod sursa (job #3255589) | Cod sursa (job #1777754)
#include <cstdio>
#include <algorithm>
using namespace std;
int n;
long long a[100002];
int main()
{
freopen("avioane.in", "r", stdin);
freopen("avioane.out", "w", stdout);
scanf("%d", &n);
for(int i = 1; i <= n; ++i)
scanf("%lld", &a[i]);
sort(a + 1, a + n + 1);
long long Max = a[1] * n;
int Front = 1;
for(int i = 2; i <= n ; ++i){
long long Sum = (long long)(n - i + 1) * a[i];
int m = i - Front - 1;
long long PM = a[Front] * (long long)(m + 1);
for(int j = Front; j < i ; ++j){
long long P = a[j] * (long long) m;
--m;
if(P >= PM) {
Front = j;
PM = P;
}
}
if(Sum + PM > Max)
Max = Sum + PM;
}
printf("%lld", Max);
return 0;
}