Pagini recente »
Istoria paginii runda/vaslui_cls10_09.02/clasament
|
Istoria paginii runda/olimp_cls5-6/clasament
|
lasm_go_for_it
|
Istoria paginii runda/lasm_19_01_2022_cl10
|
Cod sursă (job #21609)
Cod sursă (job
#21609)
#include <fstream>
using namespace std;
ifstream in ("lanterna.in");
ofstream out ("lanterna.out");
int main(void) {
int numbers[100001],n;
int aux,i;
bool swapped;
long long sum=0;
in >>n;
for(i = 1; i <= n; i++) {
in >> numbers[i];
}
// sort them
do {
swapped = false;
for(i = 1; i < n; i++) {
if(numbers[i] > numbers[i + 1]) {
swapped = true;
aux = numbers[i];
numbers[i] = numbers[i + 1];
numbers[i + 1] = aux;
}
}
} while(swapped);
i=n;
while (i>3) {
if (2*numbers[2]<numbers[1]+numbers[i-1]) sum+=2*numbers[2]+numbers[1]+numbers[i];
else sum+=2*numbers[1]+numbers[i]+numbers[i-1];
i-=2;
}
if (i==3) sum+=numbers[1]+numbers[2]+numbers[3];
else sum+=numbers[2];
out <<sum;
return 0;
}