Cod sursă (job #14579)

Utilizator avatar Mihai Podaru Mihai Mihai IP ascuns
Problemă Lanterna Compilator cpp | 0,83 kb
Rundă Arhiva de probleme Status evaluat
Dată 9 mar. 2013 01:05:47 Scor 90
#include <fstream>
#include <algorithm>
using namespace std;

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

const int N = 100001;

int v[N], n, i;
long long s;

void citire();
void rezolvare();
void afisare();

int main()
{
	citire();
	rezolvare();
	afisare();
	in.close();
	out.close();
    return 0;
}

void citire()
{
	in >> n;
	for(i=1;i<=n;i++)
		in >> v[i];
	sort(&v[1],&v[i]);
}

void rezolvare()
{
	int x, y;
	while(n)
	{
		if(n>3)
		{
			x=v[1]+2*v[2]+v[n];
			y=2*v[1]+v[n]+v[n-1];
            if(x>y)
                s+=y;
            else
                s+=x;
            n-=2;
        }
        else if(n==3)
		{
            s+=v[1]+v[1]+v[2];
            break;
        }

        else if(n==2)
		{
            s+=v[2];
            break;
        }
    }
}

void afisare(){ out << s ; }