Pagini recente » Cod sursa (job #399608) | Cod sursa (job #2708768) | Cod sursa (job #336510) | Cod sursa (job #635653) | Cod sursa (job #586191)
Cod sursa(job #586191)
#include<cstdio>
#include<algorithm>
using std::sort;
int v[100005];
long long b,e,ms,n;
bool calibb(){
long long ib=b,s;
for(long long i=e+1;i<n;i++){
s=(n-i)*v[i]+(i-e)*v[e];
if(s>ms)b=i,ms=s;
}
return b!=ib;
}
bool calibe(){
long long ie=e,s;
for(long long i=0;i<b;i++){
s=(b-i)*v[i]+(n-b)*v[b];
if(s>ms)e=i,ms=s;
}
return e!=ie;
}
int main(){
freopen("avioane.in","r",stdin);
freopen("avioane.out","w",stdout);
scanf("%lld",&n);
for(long long i=0;i<n;i++)
scanf("%d",v+i);
sort(v,v+n);
//for(int i=0;i<n;i++)printf("%d ",v[i]);
//printf("\n");
/*
int s=0,ms=0;
for(int b=1;b<n;b++)
for(int e=0;e<b;e++){
s=(b-e)*v[e]+(n-b)*v[b];
ms=s>ms?s:ms;
if(s==129)
printf("%d %d\n",e,b);
}
*/
e=-1,b=n;
bool ok=true;
while(ok){
ok=false;
ok=calibe();
if(calibb())
ok=true;
}
printf("%lld",ms);
return 0;
}