Pagini recente » Cod sursa (job #1439884) | Cod sursa (job #2250237) | Cod sursa (job #2267096) | Cod sursa (job #49357) | Cod sursa (job #993107)
Cod sursa(job #993107)
#include <iostream>
#include <fstream>
#include <algorithm>
#define N 100014
using namespace std;
int n,a[N],c[N];
long long b[N],sol;
void calc (int p, int u)
{
if (p>u) return;
int m=(p+u)/2,i;
long long crt;
for (i=c[p-1];i<=m;i++)
{
crt=(long long)(m-i+1)*a[i];
if (b[m]<crt){
b[m]=crt;
c[m]=i;
}
}
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);
c[n+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;
}