Pagini recente » Cod sursa (job #226266) | Cod sursa (job #203120) | Cod sursa (job #811585) | Cod sursa (job #1425734) | Cod sursa (job #2636339)
#include <bits/stdc++.h>
#define MAX 131072
#define MOD 98999
#define INF 2100000000
#define eps 1e-5
using namespace std;
const int NMAX = 100100;
FILE *IN, *OUT;
int N;
int v[NMAX];
int pos, sign, out;
char f[MAX], Out[NMAX], str[10];
inline void Read(int &nr){
sign = 0;
nr = 0;
while(f[pos] < '0' || f[pos] > '9'){
if(f[pos] == '-') sign = 1;
pos++;
if(pos == MAX)
fread(f, MAX, 1, IN), pos = 0;
}
while(f[pos] >= '0' && f[pos] <= '9'){
nr = 10 * nr + f[pos++] - '0';
if(pos == MAX)
fread(f, MAX, 1, IN), pos = 0;
}
if(sign) nr =- nr;
}
void read(){
Read(N);
for(int i = 1; i <= N; i++)
Read(v[i]);
sort(v + 1, v + N + 1);
}
int main(){
IN = fopen("avioane.in", "r");
OUT = fopen("avioane.out", "w");
read();
int idx;
long long vMax = -INF, ans = 0;
for(int i = 1; i <= N; i++)
if(v[i] * (N - i + 1) > vMax){
vMax = v[i] * (N - i + 1);
idx = i;
}
ans = vMax; vMax = -INF;
for(int i = idx + 1; i <= N; i++){
v[i] -= v[idx];
if(v[i] * (N - i + 1) > vMax)
vMax = v[i] * (N - i + 1);
}
ans += vMax;
fprintf(OUT, "%lld", ans);
return 0;
}