Pagini recente »
Cod sursă (job #446286)
Cod sursă (job
#446286)
#include<bits/stdc++.h>
using namespace std;
#define ion 100005
int a[ion],n,rs;
int partition (int st, int dr)
{
int pivot=a[dr];
int i=(st-1);
for (int j=st;j<=dr-1;j++)
{
if (a[j]<=pivot)
{
i++;
swap(a[i],a[j]);
}
}
swap(a[i+1],a[dr]);
return (i+1);
}
void quickSort(int st, int dr)
{
if(st<dr)
{
int pi=partition(st,dr);
quickSort(st,pi-1);
quickSort(pi+1,dr);
}
}
int main(){
ifstream cin("lanterna.in");
ofstream cout("lanterna.out");
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
quickSort(1,n+1);
while(n-2>=2){
if(a[1]+2*a[2]+a[n]<2*a[1]+a[n]+a[n-1])rs+=(a[1]+2*a[2]+a[n]);
else rs+=(2*a[1]+a[n]+a[n-1]);
n-=2;
}
if(n==3){
rs+=(a[1]+a[2]+a[3]);
}
if(n==2){
rs+=a[2];
}
cout<<rs;
return 0;
}