Cod sursă (job #803153)

Utilizator avatar dariusbulican darius bulican dariusbulican IP ascuns
Problemă Lanterna Compilator cpp-32 | 0,83 kb
Rundă lasm_09_01_2025_clasa11 Status evaluat
Dată 9 ian. 2025 14:55:29 Scor 60
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;


int main() {
    ifstream fin("lanterna.in");
    ofstream fout("lanterna.out");
    int n;
    fin>>n;
    int A[100010];
    for (int i = 0; i < n; ++i) {
        fin >> A[i];
    }

    sort(A, A + n);

    int total = 0;
    int i = n - 1; 

    while (i >= 0) {
        if (i == 0) {
            total += A[0];
            break;
        } else if (i == 1) {
            total += A[1];
            break;
        } else if (i == 2) {
            total += A[0] + A[1] + A[2];
            break;
        } else {
            int x = A[0] + A[1] + A[i] + A[1];
            int y = A[0] + A[i] + A[0] + A[i - 1]; 
            total += min(x, y);
            i -= 2; 
        }
    }

    fout << total;

    return 0;
}