Pagini recente » Cod sursa (job #2543034) | Cod sursa (job #2971789) | Cod sursa (job #584358) | Cod sursa (job #439798) | Cod sursa (job #2515374)
#include <bits/stdc++.h>
using namespace std;
ifstream f("avioane.in");
ofstream g("avioane.out");
long long x;
int n,v[100001],d[100001];
long long rezolvare(int in,int sf)
{
if(in > sf)
return -1;
int mij = (in + sf) / 2;
long long rasp = 0;
for(int i = d[in - 1]; i <= min(mij,d[sf + 1]); ++i)
{
long long cur = v[mij] * (n - mij) + v[i] * (mij - i);
if(cur > rasp)
{
rasp = cur;
d[mij] = i;
}
}
return max(rasp,max(rezolvare(in,mij - 1),rezolvare(mij + 1,sf)));
}
int main()
{
f >> n;
for(int i = 0; i < n; ++i)
f >> v[i];
sort(v,v + n);
d[n] = n;
g << rezolvare(0,n - 1);
return 0;
}