Pagini recente » Cod sursa (job #1079097) | Cod sursa (job #2059812) | Cod sursa (job #2616158) | Cod sursa (job #1962529) | Cod sursa (job #2349846)
#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;
}