Cod sursă (job #21609)

Utilizator avatar Piciu Lucian Nita Piciu IP ascuns
Problemă Lanterna Compilator cpp | 1,10 kb
Rundă Arhiva de probleme Status evaluat
Dată 29 aug. 2013 12:19:04 Scor 50
#include <fstream>

using namespace std;

ifstream in ("lanterna.in");
ofstream out ("lanterna.out");

int main(void) {
        int  numbers[100001],n;
        int  aux,i;
        bool swapped;
        long long sum=0;
        in >>n;
        for(i = 1; i <= n; i++) {
                in >> numbers[i];
        }
        // sort them
        do {
                swapped = false;
                for(i = 1; i < n; i++) {
                        if(numbers[i] > numbers[i + 1]) {
                            swapped = true;
                            aux = numbers[i];
                            numbers[i] = numbers[i + 1];
                            numbers[i + 1] = aux;
                         }
                }
        } while(swapped);
        i=n;
        while (i>3) {
            if (2*numbers[2]<numbers[1]+numbers[i-1]) sum+=2*numbers[2]+numbers[1]+numbers[i];
            else sum+=2*numbers[1]+numbers[i]+numbers[i-1];
            i-=2;
        }
        if (i==3) sum+=numbers[1]+numbers[2]+numbers[3];
        else sum+=numbers[2];
        out <<sum;
        return 0;
}