Pagini recente » Cod sursa (job #2326482) | Cod sursa (job #831349) | pregatire_oni_liceu | Cod sursa (job #2136618) | Cod sursa (job #720607)
Cod sursa(job #720607)
#include <fstream>
#include <algorithm>
using namespace std;
#define Nmax 100011
ifstream F("avioane.in");
ofstream G("avioane.out");
int A[Nmax],N;
int Min,Max;
int Minv,Maxv;
int Sum;
inline int f(int x,int y)
{ return A[x]*(y-x)+A[y]*(N-y+1); }
int place_max(int st,int dr)
{
if (st==dr)
return st;
if (dr-st==1)
return ( f(Min,dr)-f(Min,st) ) ? dr : st ;
int mid=(st+dr)/2;
int x=place_max(mid,dr);
int y=place_max(st,mid);
return f(Min,x)-f(Min,y) ? x : y ;
}
int main()
{
F>>N;
for (int i=1;i<=N;++i)
F>>A[i];
sort(A,A+N+1);
for (int i=1;i<=N;++i)
Sum=max(Sum,f(i,place_max(i,N)));
G<<Sum<<'\n';
F.close();
G.close();
return 0;
}