Pagini recente » Cod sursa (job #3134609) | Cod sursa (job #1408373)
#include<fstream>
#include<algorithm>
using namespace std;
typedef long long ll;
ifstream in("avioane.in");
ofstream out("avioane.out");
const int Nmax = 100001;
int N,v[Nmax];
ll ans[Nmax];
void gm(int st,int dr,int a,int b){
if(st>dr) return;
int i=(st+dr)/2,ch;
for(int j=max(i,a);j<=b;j++){
ll cur = 1LL*(j-i)*v[i] + 1LL*(N-j+1)*v[j];
if(cur>ans[i]) ans[i]=cur,ch=j;
}
gm(st,i-1,a,ch);
gm(i+1,dr,ch,b);
}
int main(){
in>>N;
for(int i=1;i<=N;i++) in>>v[i];
sort(v+1,v+N+1);
gm(1,N,1,N);
for(int i=1;i<=N;i++) if(ans[i]>ans[0]) ans[0]=ans[i];
out<<ans[0]<<'\n';
return 0;
}