Pentru această operație este nevoie să te autentifici.
Cod sursă (job #521746)
Utilizator |
|
IP | ascuns |
---|---|---|---|
Problemă | Lanterna | Compilator | cpp | 0,48 kb |
Rundă | easy_oli1 | Status | evaluat |
Dată | 25 ian. 2020 12:13:21 | Scor | 80 |
#include <bits/stdc++.h>
using namespace std;
const long long INF = 1e18;
int n;
int a[100005];
long long d[100005];
int main(){
freopen("lanterna.in", "r", stdin);
freopen("lanterna.out", "w", stdout);
scanf("%d", &n);
for(int i = 1; i <= n ; ++i) scanf("%d", &a[i]);
sort(a + 1, a + n + 1);
for(int i = n; i >= 3 ; --i){
d[i] = d[i + 1] + a[i] + a[1];
if(i < n){
d[i] = min(d[i], d[i + 2] + a[i + 1] + a[1] + 2 * a[2]);
}
}
printf("%lld", d[3] + a[2]);
return 0;
}