Cod sursă (job #521933)

Utilizator avatar Alexandru_Stoian Stoian Sorin Alexandru Alexandru_Stoian IP ascuns
Problemă Lanterna Compilator cpp | 0,71 kb
Rundă Arhiva de probleme Status evaluat
Dată 25 ian. 2020 14:36:33 Scor 80


#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



unsigned long long n,v[100011],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;
    while(i>2){
        s1=2*v[1]+v[i-1]+v[i];
        s2=v[1]+2*v[2]+v[i];
        if(s2<s1){
            s=s+s2;
            i=i-2;
        }
        else{
            s=s+v[i]+v[1];
            --i;
        }
    }

    if(i==2)s=s+v[2];
    else if(i==1)s=s+v[1];

    g<<s<<'\n';

    return 0;
}