Pagini recente » Cod sursa (job #53672) | Cod sursa (job #425055) | Cod sursa (job #2679963) | Cod sursa (job #1124022) | Cod sursa (job #585738)
Cod sursa(job #585738)
#include <fstream>
#include <algorithm>
using namespace std;
const char InFile[]="avioane.in";
const char OutFile[]="avioane.out";
const int MaxN=100111;
ifstream fin(InFile);
ofstream fout(OutFile);
int N,v[MaxN];
long long sol,psol=-1,psolind,best[MaxN];
int main()
{
fin>>N;
for(register int i=1;i<=N;++i)
{
fin>>v[i];
}
fin.close();
sort(v+1,v+1+N);
for(register int i=1;i<=N;++i)
{
best[i]=(long long)((N-i+1))*(long long)(v[i]);
if(psol<=best[i])
{
psol=best[i];
psolind=i;
}
}
for(register int psolind=1;psolind<=N;++psolind)
{
for(register int i=1;i<=N;++i)
{
long long c=0;
if(i<psolind)
{
c=best[psolind]+(psolind-i)*v[i];
}
else
{
c=v[i]*(N-i+1)+v[psolind]*(i-psolind);
}
if(sol<c)
{
sol=c;
}
}
}
fout<<sol;
fout.close();
return 0;
}