Pagini recente » Cod sursa (job #2868116) | Cod sursa (job #1645877) | Cod sursa (job #809552) | Cod sursa (job #2794878) | Cod sursa (job #1112341)
#include<fstream>
#include<algorithm>
#define ll long long
#define N 100100
using namespace std;
ifstream f("avioane.in");
ofstream g("avioane.out");
int i,n,a[N],v[N];
ll sol[N],maxi;
inline void rez(int li,int ls)
{
if(li>ls)
return ;
int mij=(li+ls)>>1;
for(i=v[li-1];i<=v[ls+1]&&i<=mij;++i)
{
ll x=1LL*(mij-i+1)*a[i];
if(x>sol[mij])
{
v[mij]=i;
sol[mij]=x;
}
}
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]+(n-i+1)*a[i]);
g<<maxi<<'\n';
return 0;
}