Pagini recente » Cod sursa (job #3203297) | Cod sursa (job #3268584) | Cod sursa (job #2771338) | Cod sursa (job #3179204) | Cod sursa (job #645217)
Cod sursa(job #645217)
#include <cstdio>
#include <ctime>
#include <algorithm>
int n, maxPayment [100000];
int next;
int rand(void)
{
next = next * 1103515245 + 12345;
return next % n;
}
void srand(unsigned int seed)
{
next = seed;
}
int main () {
int i;
srand (time(0));
freopen ("avioane.in", "rt", stdin);
freopen ("avioane.out", "wt", stdout);
scanf ("%d", &n);
for (i = 0; i < n; ++ i) {
scanf ("%d", &maxPayment [i]);
}
std::sort (maxPayment, maxPayment + n);
long long maxProfit = -1;
for (i = 0; i < 2500000; ++ i) {
int pos1 = rand ();
int pos2 = rand ();
if (pos1 > pos2) {
std :: swap (pos1, pos2);
}
maxProfit = std::max (maxProfit, (n - pos2) * 1ll * maxPayment [pos2] + (pos2 - pos1) * 1ll * maxPayment [pos1]);
}
printf ("%lld", maxProfit);
return 0;
}