Pagini recente » Cod sursa (job #3281480) | Cod sursa (job #2343764) | Cod sursa (job #1715137) | Cod sursa (job #1678554) | Cod sursa (job #2611554)
#include <bits/stdc++.h>
using namespace std;
ifstream f("avioane.in");
ofstream g("avioane.out");
int n,v[100005],d[100005];
long long int sol=0;
void rez(int st,int dr,int r,int l)
{
if(st>dr) return;
int mid=(st+dr)/2,cap;
long long int maxim=0;
for(int i=r;i<=l&&i<mid;i++)
{
if( 1LL*(mid-i)*v[i]>maxim )
{
maxim=1LL*(mid-i)*v[i];
cap=i;
}
}
d[mid]=cap;
maxim=maxim+1LL*(n-mid+1)*v[mid];
sol=max(sol,maxim);
rez(mid+1,dr,d[mid],l);
rez(st,mid-1,r,d[mid]);
}
int main()
{
f>>n;
for(int i=1;i<=n;i++) f>>v[i];
sort(v+1,v+n+1);
rez(1,n,1,n);
g<<sol;
}