Pagini recente »
OJI 2023 Clasa a VI-a - Antrenament FFA - Partea a doua
|
Clasament oji-2023-antrenament-ffa-v2
|
Rating Bogdan Ionescu (Snowstorm)
|
Cod sursă (job #112469)
|
Cod sursă (job #446627)
Cod sursă (job
#446627)
#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;
}