Pagini recente » Cod sursa (job #2300087) | Cod sursa (job #2534827) | Cod sursa (job #2838129) | Cod sursa (job #803189) | Cod sursa (job #993106)
Cod sursa(job #993106)
#include <iostream>
#include <fstream>
#include <algorithm>
#define N 100014
using namespace std;
int n,a[N];
long long b[N],sol;
void calc (int p, int u)
{
if (p>u) return;
int m=(p+u)/2,i;
long long c;
for (i=0;i<=m;i++)
{
c=(long long)(m-i+1)*a[i];
if (b[m]<c)
b[m]=c;
}
calc(p,m-1);
calc(m+1,u);
}
int main ()
{
int i,j;
fstream f,g;
f.open("avioane.in",ios::in);
g.open("avioane.out",ios::out);
f>>n;
for (i=1;i<=n;i++)
f>>a[i];
sort(a+1,a+1+n);
calc(1,n);
for (i=2;i<=n;i++)
sol=max(sol,b[i-1]+(long long)a[i]*(n-i+1));
g<<sol;
}