5362 2023. 04. 26 14:14:58 horvathabel Szigetek (35 pont) cpp17 Wrong answer 1/35 27ms 6804 KiB
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main() {
    int n;
    cin >> n;

    vector<int> d(n);
    for (int i = 0; i < n; i++) {
        cin >> d[i];
    }

    vector<int> distances(n);
    distances[0] = 0;
    for (int i = 1; i < n; i++) {
        distances[i] = min(i, n - i);
    }

    vector<int> optimal(n);

    optimal[0] = d[0];
    if (n > 1) {
        optimal[1] = min(d[0] + d[1], d[1]);
    }

    for (int i = 2; i < n; i++) {
        optimal[i] = min(optimal[i-1] + d[i], optimal[i-2] + min(d[i-1], d[i]));
    }

    int result = optimal[n-1];

    if (distances[n-1] == 1) {
        result = min(result, d[n-2]);
    }

    cout << result << endl;

    return 0;
}
Subtask Sum Test Verdict Time Memory
base 1/35
1 Wrong answer 0/0 3ms 1812 KiB
2 Wrong answer 0/0 27ms 4448 KiB
3 Wrong answer 0/1 2ms 2268 KiB
4 Wrong answer 0/1 3ms 2480 KiB
5 Wrong answer 0/1 2ms 2752 KiB
6 Accepted 1/1 2ms 2844 KiB
7 Wrong answer 0/1 3ms 3080 KiB
8 Wrong answer 0/2 3ms 3128 KiB
9 Wrong answer 0/2 3ms 3332 KiB
10 Wrong answer 0/2 3ms 3684 KiB
11 Wrong answer 0/2 3ms 3652 KiB
12 Wrong answer 0/2 4ms 3736 KiB
13 Wrong answer 0/2 4ms 3784 KiB
14 Wrong answer 0/2 7ms 4032 KiB
15 Wrong answer 0/2 9ms 4232 KiB
16 Wrong answer 0/2 14ms 4500 KiB
17 Wrong answer 0/2 19ms 5212 KiB
18 Wrong answer 0/2 21ms 5788 KiB
19 Wrong answer 0/2 24ms 6000 KiB
20 Wrong answer 0/2 24ms 6352 KiB
21 Wrong answer 0/2 27ms 6804 KiB
22 Wrong answer 0/2 27ms 6572 KiB