Pagini recente » Cod sursa (job #2320809) | Cod sursa (job #2160096) | Cod sursa (job #2310035) | Cod sursa (job #1985977) | Cod sursa (job #1228368)
#include<cstdio>
#include<algorithm>
using namespace std;
int n,dirty[100005],cash[100005];
long long v[1000005];
void solv(int st,int dr)
{
if(st>dr)
return ;
int mi,i;
long long sol;
sol=0;
mi=(st+dr)/2;
for(i=dirty[st-1];i<=dirty[dr+1] && i<=mi;i++)
if(sol<(n-mi+1)*cash[mi]+cash[i]*(mi-i))
{
sol=1LL*(n-mi+1)*cash[mi]+1LL*cash[i]*(mi-i);
v[mi]=sol;
dirty[mi]=i;
}
solv(st,mi-1);
solv(mi+1,dr);
}
int main()
{
freopen("avioane.in","r",stdin);
freopen("avioane.out","w",stdout);
int i;
long long sol;
sol=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&cash[i]);
sort(cash+1,cash+n+1);
dirty[0]=1;
dirty[n+1]=n;
solv(1,n);
for(i=1;i<=n;i++)
if(v[i]>sol)
sol=v[i];
printf("%lld\n",sol);
return 0;
}