Pagini recente » Cod sursa (job #3245187) | Cod sursa (job #1965320) | Cod sursa (job #1089517) | Cod sursa (job #2653095) | Cod sursa (job #585735)
Cod sursa(job #585735)
#include <fstream>
#include <algorithm>
#include <deque>
using namespace std;
int N;
long long P[100002];
long long maxnow[100002];
deque<long long> D;
long long result;
int main()
{
ifstream fin("avioane.in");
ofstream fout("avioane.out");
fin >> N;
for (int i = 1; i <= N; ++i)
fin >> P[i];
sort(P + 1, P + N + 1);
int logN;
for (logN = 1; (logN << 1) <= N; logN <<= 1);
for (long long i = N; i >= 1; --i) // pt business
{
int step = logN;
long long apnow;
for (apnow = 0; step; step >>= 1)
if (apnow + step < i && P[apnow + step] * (i - (apnow + step)) > P[apnow + step - 1] * (i - (apnow + step - 1)))
apnow += step;
result = max(result, P[i] * (long long) (N - i + 1) + P[apnow] * (i - apnow));
}
fout << result;
fin.close();
fout.close();
}