Pagini recente »
Borderou de evaluare (job #737029)
|
Cod sursă (job #545197)
|
Cod sursă (job #816434)
|
Istoria paginii runda/concursbkt11d
|
Cod sursă (job #544889)
Cod sursă (job
#544889)
#include <fstream>
#define min(a, b) (a<b)?a:b
using namespace std;
int i, n, v[100001];
long long int t;
void quick_sort(int left, int right)
{
int i, j, pivot, tmp;
i=left;
j=right;
pivot=v[left+(right-left)/2];
while (i<=j)
{
while (v[i]<pivot)
i++;
while (v[j]>pivot)
j--;
if (i<=j)
{
tmp=v[i];
v[i]=v[j];
v[j]=tmp;
i++;
j--;
}
}
if (left<j)
quick_sort(left, j);
if (right>i)
quick_sort(i, right);
}
int main()
{
ifstream fin("lanterna.in");
ofstream fout("lanterna.out");
fin>>n;
for (i=1;i<=n;i++)
fin>>v[i];
quick_sort(1, n);
while (n>3)
{
t+=min(2*v[2]+v[n]+v[1], 2*v[1]+v[n-1]+v[n]);
n-=2;
}
if (n==3)
t+=v[1]+v[2]+v[3];
else t+=v[2];
fout<<t;
return 0;
}