Pagini recente » Cod sursa (job #634530) | Cod sursa (job #228932) | Cod sursa (job #2854140) | Cod sursa (job #443574) | Cod sursa (job #1795064)
#include <bits/stdc++.h>
using namespace std;
ifstream f("avioane.in");
ofstream g("avioane.out");
long long x;
int n,v[1<<17],d[1<<17];
long long calc(int l,int r)
{
if(l>r) return -1;
int b=(l+r)>>1;
long long best=0;
for(int e=d[l-1];e<=min(b,d[r+1]);++e)
{
long long cur=1LL*v[b]*(n-b)+1LL*v[e]*(b-e);
if(cur>best) best=cur,d[b]=e;
}
return max(best,max(calc(l,b-1),calc(b+1,r)));
}
int main()
{
f>>n;
for(int i=0;i<n;i++) f>>v[i];
sort(v,v+n);
d[n]=n;
g<<calc(0,n-1);
return 0;
}