Cod sursă (job #446288)

Utilizator avatar dinugafton Dinu Gafton dinugafton IP ascuns
Problemă Lanterna Compilator cpp | 0,92 kb
Rundă lasm_13_03_2019_10_12b Status evaluat
Dată 14 mar. 2019 15:54:35 Scor 60
#include<bits/stdc++.h>
using namespace std;
#define danielsoc 100005
int a[danielsoc],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];
	sort(a+1,a+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;
}