Pagini recente » Cod sursa (job #3270415) | Cod sursa (job #846373) | Cod sursa (job #2639231) | Cod sursa (job #781811) | Cod sursa (job #997383)
Cod sursa(job #997383)
#include<fstream>
#include<algorithm>
#define N 100010
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)
{
int i,mij=(li+ls)>>1;
long long x;
for(i=v[li-1];i<=mij&&i<=v[ls+1];++i)
{
x=(mij-i+1)*a[i];
if(sol[mij]<x)
{
sol[mij]=x;
v[mij]=i;
}
}
if(li<mij)
rez(li,mij-1);
if(ls>mij)
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;
}