Pagini recente » Cod sursa (job #3279360) | Cod sursa (job #545305) | Cod sursa (job #1913395) | Cod sursa (job #314120) | Cod sursa (job #997390)
Cod sursa(job #997390)
#include<fstream>
#include<algorithm>
#define N 100020
using namespace std;
ifstream f("avioane.in");
ofstream g("avioane.out");
int n,i,v[N],a[N];
long long maxi,sol[N];
inline void rez(int li,int ls)
{
if(li>ls)
return;
int i,mij=(li+ls)>>1;
long long x;
for(i=v[li-1];i<=mij&&i<=v[ls+1];++i)
{
x=1LL*(mij-i+1)*a[i];
if(sol[mij]<x)
{
sol[mij]=x;
v[mij]=i;
}
}
rez(li,mij-1);
rez(mij+1,ls);
}
int main()
{
f>>n;
for(i=1;i<=n;++i)
f>>a[i];
sort(a+1,a+n+1);
v[n+1]=n;
rez(1,n);
for(i=2;i<=n;++i)
maxi=max(maxi,sol[i-1]+(long long)a[i]*(n-i+1));
g<<maxi<<'\n';
return 0;
}