Pagini recente » Cod sursa (job #1078813) | Cod sursa (job #424803) | Cod sursa (job #2936047) | Cod sursa (job #731493) | Cod sursa (job #585852)
Cod sursa(job #585852)
#include <stdio.h>
#include <algorithm>
#define N 100005
using namespace std;
int n;
long long A[N];
long long rez,sol=0;
FILE *f,*g;
void citire()
{
int i;
fscanf(f,"%d",&n);
for (i=1;i<=n;++i)
fscanf(f,"%lld",&A[i]);
sort(A+1,A+n+1);
}
int bs(int point)
{
int st,dr,mij;
st=1;
dr=n;
while (st<=dr)
{
mij=(st+dr)/2;
if ((A[point]*(mij-point))+(A[mij]*(n-mij+1))>=rez)
{
rez=(A[point]*(mij-point))+(A[mij]*(n-mij+1));
st=mij+1;
}
else
dr=mij-1;
}
return dr;
}
void solve()
{
int i,x;
for (i=1;i<=n;i++)
{
rez=0;
x=bs(i);
if (rez>sol)
sol=rez;
}
fprintf(g,"%lld",sol);
}
int main()
{
f=fopen("avioane.in","r");
g=fopen("avioane.out","w");
citire();
solve();
fclose(f);
fclose(g);
return 0;
}