Cod sursă (job #518547)

Utilizator avatar Vlad_Anica Anica-Popa Vlad-Ioan Vlad_Anica IP ascuns
Problemă Lanterna Compilator cpp | 0,94 kb
Rundă Arhiva de probleme Status evaluat
Dată 15 ian. 2020 10:16:35 Scor 40
#include <iostream>
#include <fstream>


using namespace std;

ifstream fin ("lanterna.in");
ofstream fout ("lanterna.out");
int v[100000];
int freq[1000001];

int main()
{
    int n,i,nr,j;
    long long timptotal;
    fin >> n;
    for(i=0;i<n;i++)
    {
        fin >> nr;
        v[i]=nr;
        freq[nr]++;
    }
    j=0;
    for(i=1;i<=1000000;i++)
    {
        while(freq[i]>0)
        {
            v[j++]=i;
            freq[i]--;
        }
    }
    timptotal=0;
    for(i=n-1;i>2;i-=2)
    {
        if(((v[0]<<1)+v[1]+v[i]+v[i-1])<((3*v[1])+v[0]+v[i]))
        {
            timptotal+=(v[0]<<1)+v[1]+v[i]+v[i-1];
        }
        else
        {
            timptotal+=(v[1]<<1)+v[0]+v[i];
            if(i==3)
            {
                timptotal+=v[1];
            }
        }
    }

    if(i==2)
    {
        timptotal+=v[0]+v[1]+v[2];
    }

    fout << timptotal;
    return 0;
}