Pagini recente » Cod sursa (job #1532029) | Cod sursa (job #2522514) | Cod sursa (job #673515) | Cod sursa (job #797884) | Cod sursa (job #2410106)
#include <fstream>
#include <algorithm>
#define DIM 100010
using namespace std;
ifstream fin ("avioane.in");
ofstream fout ("avioane.out");
long long d[DIM],sol;
int poz[DIM],v[DIM];
int n,i;
void solve (int st, int dr, int l, int r){
if (st > dr)
return;
int mid = (st+dr)/2;
/// calculam d[mid];
/// fixez clasa bussiness si caut economy
int poz;
for (int i=l;i<=r && i<=mid;i++){
if (1LL*(mid-i)*v[i] + 1LL*(n-mid+1)*v[mid] > d[mid]){
d[mid] = 1LL*(mid-i)*v[i] + 1LL*(n-mid+1)*v[mid];
poz = i;
}
}
solve (st,mid-1,l,poz);
solve (mid+1,dr,poz,r);
}
int main (){
fin>>n;
for (i=1;i<=n;i++)
fin>>v[i];
sort (v+1,v+n+1);
solve (1,n,1,n);
sol = 0;
for (i=1;i<=n;i++)
sol = max (sol,d[i]);
fout<<sol;
return 0;
}