Cod sursa(job #1388542)

Utilizator StarGold2Emanuel Nrx StarGold2 Data 15 martie 2015 15:50:53
Problema Avioane Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.32 kb
#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 ++){
          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;
}