Pagini recente » Cod sursa (job #852599) | Cod sursa (job #303283) | Cod sursa (job #675178) | Cod sursa (job #809373) | Cod sursa (job #1190755)
#include<fstream>
#include<algorithm>
#define maxn 100005
using namespace std;
ifstream fi("avioane.in");
ofstream fo("avioane.out");
int i,n,a[maxn],c[maxn];
long long b[maxn],sol=0;
void calcul(int st,int dr){
long long aux;
int i,mid;
if(st<=dr){
mid=(st+dr)/2;
for(i=c[st-1]; i<=mid && i<=c[dr+1]; i++)
{
aux=1LL*(mid-i+1)*a[i];
if(b[mid]<aux){
b[mid]=aux;
c[mid]=i;
}
}
calcul(st,mid-1);
calcul(mid+1,dr);
}
}
int main(){
fi>>n;
for(i=1;i<=n;i++) fi>>a[i];
sort(a+1,a+n+1);
c[n+1]=n;
calcul(1,n);
for(i=2;i<=n;i++)
sol=max(sol,b[i-1]+1LL*(n-i+1)*a[i]);
fo<<sol;
fi.close();
fo.close();
return 0;
}