Cod sursă (job #521924)

Utilizator avatar Alexandru_Stoian Stoian Sorin Alexandru Alexandru_Stoian IP ascuns
Problemă Lanterna Compilator cpp | 0,76 kb
Rundă Arhiva de probleme Status evaluat
Dată 25 ian. 2020 14:27:49 Scor 60


#include <bits/stdc++.h>

using namespace std;

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




//s1=2a1+a3+a4
//s2=a1+2a2+a4
//------------ -
//s1-s2=a1-2a2+a3
//
//
//s1>s2 <=> a1-2a2+a3>0



int n,v[100001],sf,fi,a1,a2,a3,a4,s,s1,s2;

int main(){

    f>>n;

    for(int i=1; i<=n; ++i)
        f>>v[i];

    sort(v+1,v+n+1);

    int i=n;

    a1=v[1];
    a2=v[2];
    while(i>2){
        a3=v[i-1];
        a4=v[i];
        s1=2*a1+a3+a4;
        s2=a1+2*a2+a4;

        if(s1>s2){
            s=s+s2;
            i=i-2;
        }
        else{
            s=s+a1+a4;
            --i;
        }
    }

    if(i==2)
        s=s+a2;
    if(i==1)
        s=s+a1;

    g<<s<<'\n';

    return 0;
}