Pagini recente » Cod sursa (job #3138331) | Cod sursa (job #1546130) | Cod sursa (job #1211348) | i | Cod sursa (job #2753532)
#include <bits/stdc++.h>
using namespace std;
ifstream f("avioane.in");
ofstream g("avioane.out");
const int nmax=10002;
int n,v1[nmax],v2[nmax];
long long sol=0;
void solve(int st,int dr,int r,int l)
{
if(st>dr)return;
int mij=(st+dr)/2,val;
long long Max=0;
for(int i=r; i<=l && i<mij; i++)
{
if(1LL*(mij-i)*v1[i]>Max)
{
Max=1LL*(mij-i)*v1[i];
val=i;
}
}
v2[mij]=val;
Max=Max+1LL*(n-mij+1)*v1[mij];
sol=max(sol,Max);
solve(mij+1,dr,v2[mij],l);
solve(st,mij-1,r,v2[mij]);
}
int main()
{
f>>n;
for(int i=1; i<=n; i++)
{
f>>v1[i];
}
sort(v1+1,v1+n+1);
solve(1,n,1,n);
g<<sol<<'\n';
return 0;
}