CSES - E4590 2016 1 - Results
Submission details
Task:Coffee shops
Sender:ivan
Submission time:2016-09-17 15:23:32 +0300
Language:C++
Status:READY
Result:
Test results
testverdicttime
#1UNKNOWN--details
#2UNKNOWN--details
#3UNKNOWN--details
#4UNKNOWN--details
#5UNKNOWN--details
#6UNKNOWN--details
#7UNKNOWN--details
#8UNKNOWN--details
#9UNKNOWN--details
#10UNKNOWN--details
#11UNKNOWN--details
#12UNKNOWN--details
#13UNKNOWN--details
#14UNKNOWN--details
#15UNKNOWN--details
#16UNKNOWN--details
#17UNKNOWN--details
#18UNKNOWN--details

Code

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <stack>

using namespace std;

int arr[1000000];
int cost[1000000];
int is[1000000];

int main(int argc, char *argv[])
{
    ios::sync_with_stdio(0);
    int n = 0;
    cin >> n;

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

    cost[0] = arr[0];
    is[0] = 1;

    if (n == 1) {
        cout << cost[0];
        return 0;
    }

    if (arr[1] < arr[0]) {
        cost[1] = arr[1];
        is[1] = 1;
    } else {
        cost[1] = cost[0];
        is[1] = 0;
    }

    for (int i = 2; i < n; ++i) {
        if (is[i - 1] == 0) {
            // not covered, we have to cover it
            cost[i] = cost[i - 2] + arr[i];
            is[i] = 1;
        } else {
            // covered, but we need to check if we can do better
            int cur_sum = arr[i] + cost[i - 2];

            if (cur_sum < cost[i - 1]) {
                // let's cover it with it
                cost[i] = cur_sum;
                is[i] = 1;
            } else {
                // no, we needn't cover it
                cost[i] = cost[i - 1];
                is[i] = 0;
            }
        }
    }

//    for (int i = 0; i < n; ++i)
//        cout << cost[i] << endl;

    cout << cost[n - 1];

    return 0;
}

Test details

Test 1

Verdict: UNKNOWN

input
9
1 1 1000 1 1000 1000 1 1 1

correct output
4

user output
(not available)

Test 2

Verdict: UNKNOWN

input
100
5 6 3 10 10 1 8 3 8 4 3 1 10 4...

correct output
152

user output
(not available)

Test 3

Verdict: UNKNOWN

input
1000
4 5 5 7 3 4 9 5 1 5 9 9 1 9 2 ...

correct output
1383

user output
(not available)

Test 4

Verdict: UNKNOWN

input
10000
10 8 9 6 3 5 2 9 4 7 6 3 1 1 2...

correct output
13686

user output
(not available)

Test 5

Verdict: UNKNOWN

input
100000
9 7 6 1 9 9 9 4 7 9 6 5 9 1 8 ...

correct output
136447

user output
(not available)

Test 6

Verdict: UNKNOWN

input
1000000
2 7 4 4 5 6 5 9 5 9 1 6 8 3 5 ...

correct output
1355562

user output
(not available)

Test 7

Verdict: UNKNOWN

input
1000000
4 8 3 6 4 5 4 9 3 6 8 7 8 1 5 ...

correct output
1358066

user output
(not available)

Test 8

Verdict: UNKNOWN

input
1000000
4 5 5 9 3 2 2 8 5 9 6 4 6 7 10...

correct output
1356381

user output
(not available)

Test 9

Verdict: UNKNOWN

input
1000000
6 3 1 2 8 5 5 4 7 6 7 10 10 1 ...

correct output
1357998

user output
(not available)

Test 10

Verdict: UNKNOWN

input
1000000
5 5 4 6 10 8 10 5 7 9 7 7 6 4 ...

correct output
1358217

user output
(not available)

Test 11

Verdict: UNKNOWN

input
1
42

correct output
42

user output
(not available)

Test 12

Verdict: UNKNOWN

input
2
58 105

correct output
58

user output
(not available)

Test 13

Verdict: UNKNOWN

input
2
5 3

correct output
3

user output
(not available)

Test 14

Verdict: UNKNOWN

input
1000000
1000 1000 1000 1000 1000 1000 ...

correct output
333334000

user output
(not available)

Test 15

Verdict: UNKNOWN

input
1000000
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
333334

user output
(not available)

Test 16

Verdict: UNKNOWN

input
1
1

correct output
1

user output
(not available)

Test 17

Verdict: UNKNOWN

input
3
5 7 4

correct output
7

user output
(not available)

Test 18

Verdict: UNKNOWN

input
6
2 7 1 7 7 4

correct output
7

user output
(not available)