Pagini recente » Cod sursa (job #2775507) | Cod sursa (job #149464) | Cod sursa (job #1323802) | Cod sursa (job #2927582) | Cod sursa (job #2655349)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream si("avioane.in");
ofstream so("avioane.out");
int n;
int v[100005];
long long sol;
void din(int l, int r, int sl, int sr) {
if(l>r)
return;
int mid=(l+r)/2;
int poz;
long long maxx=-1;
for(int i=sl; i<min(mid, sr+1); ++i)
if(1ll*(mid-i)*v[i]>maxx) {
maxx=1ll*(mid-i)*v[i];
poz=i;
}
maxx+=1ll*(n-mid+1)*v[mid];
sol=max(sol, maxx);
din(mid+1, r, poz, sr);
din(l, mid-1, sl, poz);
}
int main() {
si>>n;
for(int i=1; i<=n; ++i)
si>>v[i];
sort(v+1, v+n+1);
din(1, n, 1, n);
so<<sol;
return 0;
}