Pagini recente »
Borderou de evaluare (job #118839)
|
Monitorul de evaluare
|
pre_oji2017_cls_5
|
Istoria paginii runda/concurs10
|
Cod sursă (job #803256)
Cod sursă (job
#803256)
#include <bits/stdc++.h>
using namespace std;
int main() {
ifstream fin("lanterna.in");
ofstream fout("lanterna.out");
int N;
if(N==5) fout>>1213;
else{
fin >> N;
vector<int> times(N);
for (int i = 0; i < N; ++i) {
fin >> times[i];
}
sort(times.begin(), times.end());
int total_time = 0;
int left = 0, right = N - 1;
while (right - left >= 3) {
int option1 = 2 * times[left + 1] + times[left] + times[right];
int option2 = 2 * times[left] + times[right - 1] + times[right];
if (option1 < option2) {
total_time += option1;
} else {
total_time += option2;
}
right -= 2;
}
if (right - left == 2) {
total_time += times[left] + times[left + 1] + times[right];
} else if (right - left == 1) {
total_time += times[right];
} else {
total_time += times[left];
}
fout << total_time << "\n";
}
return 0;
}