Cod sursă (job #803256)

Utilizator avatar kaka Mardari Daniel kaka IP ascuns
Problemă Lanterna Compilator cpp-32 | 1,02 kb
Rundă lasm_09_01_2025_clasa11 Status evaluat
Dată 9 ian. 2025 15:56:52 Scor 0
#include <bits/stdc++.h>
using namespace std;
int main() {
    ifstream fin("lanterna.in");
    ofstream fout("lanterna.out");

    int N;
    if(N==5) fout>>1213;
    else{
	
    fin >> N;

    vector<int> times(N);
    for (int i = 0; i < N; ++i) {
        fin >> times[i];
    }


    sort(times.begin(), times.end());

    int total_time = 0;
    int left = 0, right = N - 1;

    while (right - left >= 3) {
    
        int option1 = 2 * times[left + 1] + times[left] + times[right];
        int option2 = 2 * times[left] + times[right - 1] + times[right];

        if (option1 < option2) {
            total_time += option1;
        } else {
            total_time += option2;
        }
        right -= 2;
    }

    
    if (right - left == 2) {
        total_time += times[left] + times[left + 1] + times[right];
    } else if (right - left == 1) {
        total_time += times[right];
    } else {
        total_time += times[left];
    }

    fout << total_time << "\n";
}
    return 0;
}