Pagini recente » Cod sursa (job #2757854) | Cod sursa (job #2118893) | Cod sursa (job #588668) | Cod sursa (job #601146) | Cod sursa (job #2611551)
#include <bits/stdc++.h>
using namespace std;
ifstream f("avioane.in");
ofstream g("avioane.out");
int n,v[100005],d[100005];
unsigned int sol=0;
void rez(int st,int dr,int r,int l)
{
if(st>dr) return;
int mid=(st+dr)/2,cap;
unsigned int maxim=0;
for(int i=r;i<=l&&i<mid;i++)
{
if( (mid-i)*v[i]>maxim )
{
maxim=(mid-i)*v[i];
cap=i;
}
}
d[mid]=cap;
maxim+=(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;
}