Pagini recente » Cod sursa (job #833124) | Cod sursa (job #1524874) | Cod sursa (job #1506529) | Cod sursa (job #1049291) | Cod sursa (job #1388545)
#include <fstream>
#include<algorithm>
#define DIM 100010
using namespace std;
ifstream fin ("avioave.in" );
ofstream fout("avioane.out");
int N, M, i, j, K, ok, p, u;
int V[DIM], maxim, sum, maxim2, pos;
void SetUp(){
fin >> N;
for(i = 1; i <= N; i ++)
fin >> V[i];
sort(V + 1, V + N + 1);
return;
}
void BruteForce(){
for(p = 1; p < N; p ++)
for(u = p + 1; u <= N; u ++)
if(maxim < V[p] * (u - p) + V[u] * (N - u + 1))
maxim = V[p] * (u - p) + V[u] * (N - u + 1);
fout << maxim;
return;
}
void OptimBrute(){
u = 2;
for(p = 1; p < N; p ++){
if(u == p) u ++;
sum = V[p] * (u - p) + V[u] * (N - u + 1);
maxim2 = sum; pos = u;
for(j = u + 1; j <= N; j ++){
if(maxim2 < V[p] * (j - p) + V[j] * (N - j + 1)){
maxim2 = V[p] * (j - p) + V[j] * (N - j + 1);
pos = j;
}
}
u = pos;
sum = V[p] * (u - p) + V[u] * (N - u + 1);
if(maxim < sum) maxim = sum;
}
fout << maxim;
return;
}
void CodeExpert(){
p = 1; u = 2;
fout << maxim;
return;
}
int main(){
SetUp();
//BruteForce();
OptimBrute();
//CodeExpert();
return 0;
}