Pagini recente »
Borderou de evaluare (job #388675)
|
Istoria paginii runda/9d_14.02/clasament
|
hlo_lmk_vs_10
|
Istoria paginii runda/gardul
|
Cod sursă (job #803236)
Cod sursă (job
#803236)
#include <bits/stdc++.h>
using namespace std;
int main() {
ifstream fin("lanterna.in");
ofstream fout("lanterna.out");
int N;
fin >> N;
vector<long long> t(N);
for(int i = 0; i < N; i++){
fin >> t[i];
}
sort(t.begin(), t.end());
long long totalTime = 0;
int n = N;
while(n > 3) {
long long costA = t[1] + t[0] + t[n-1] + t[1];
long long costB = t[n-1] + t[0] + t[n-2] + t[0];
totalTime += min(costA, costB);
n -= 2;
}
if(n == 3) {
totalTime += (t[0] + t[1] + t[2]);
}
else if(n == 2) {
totalTime += t[1];
}
else if(n == 1) {
totalTime += t[0];
}
fout << totalTime << "\n";
return 0;
}