CSES - Aalto Competitive Programming 2024 - wk12 - Wed - Results
Submission details
Task:Counter
Sender:bielaltes
Submission time:2024-11-27 17:12:39 +0200
Language:C++ (C++11)
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.00 sdetails
#2ACCEPTED0.00 sdetails
#3ACCEPTED0.00 sdetails
#4ACCEPTED0.00 sdetails
#5ACCEPTED0.00 sdetails
#6ACCEPTED0.00 sdetails
#7ACCEPTED0.00 sdetails
#8ACCEPTED0.00 sdetails
#9ACCEPTED0.00 sdetails
#10ACCEPTED0.00 sdetails
#11ACCEPTED0.00 sdetails
#12ACCEPTED0.00 sdetails
#13ACCEPTED0.00 sdetails
#14ACCEPTED0.00 sdetails
#15ACCEPTED0.00 sdetails
#16ACCEPTED0.00 sdetails
#17ACCEPTED0.00 sdetails
#18ACCEPTED0.00 sdetails
#19ACCEPTED0.00 sdetails
#20ACCEPTED0.00 sdetails
#21ACCEPTED0.00 sdetails
#22ACCEPTED0.00 sdetails
#23ACCEPTED0.00 sdetails
#24ACCEPTED0.00 sdetails
#25ACCEPTED0.00 sdetails
#26ACCEPTED0.01 sdetails
#27ACCEPTED0.02 sdetails

Code

#include <iostream>
#include <queue>
#include <vector>
using namespace std;

int main() {
    int x;
    cin >> x;
    
    if (x == 0) {
        cout << 0 << endl;
        exit(0);
    }
    
    vector<bool> visited(x + 1, false);
    queue<pair<int, int>> q;
    
    q.push(make_pair(0, 0));
    visited[0] = true;
    
    while (!q.empty()) {
        int curr = q.front().first;
        int moves = q.front().second;
        q.pop();
        
        if (curr + 11 <= x && !visited[curr + 11]) {
            if (curr + 11 == x) {
                cout << moves + 1 << endl;
                exit(0);
            }
            visited[curr + 11] = true;
            q.push(make_pair(curr + 11, moves + 1));
        }
        
        if (curr - 2 >= 0 && !visited[curr - 2]) {
            if (curr - 2 == x) {
                cout << moves + 1 << endl;
                exit(0);
            }
            visited[curr - 2] = true;
            q.push(make_pair(curr - 2, moves + 1));
        }
    }
    
    cout <<  -1 << endl;
}

Test details

Test 1

Verdict: ACCEPTED

input
0

correct output
0

user output
0

Test 2

Verdict: ACCEPTED

input
1

correct output
-1

user output
-1

Test 3

Verdict: ACCEPTED

input
2

correct output
-1

user output
-1

Test 4

Verdict: ACCEPTED

input
10

correct output
-1

user output
-1

Test 5

Verdict: ACCEPTED

input
11

correct output
1

user output
1

Test 6

Verdict: ACCEPTED

input
23

correct output
8

user output
8

Test 7

Verdict: ACCEPTED

input
90

correct output
20

user output
20

Test 8

Verdict: ACCEPTED

input
8

correct output
-1

user output
-1

Test 9

Verdict: ACCEPTED

input
88

correct output
8

user output
8

Test 10

Verdict: ACCEPTED

input
2

correct output
-1

user output
-1

Test 11

Verdict: ACCEPTED

input
62

correct output
8

user output
8

Test 12

Verdict: ACCEPTED

input
53

correct output
6

user output
6

Test 13

Verdict: ACCEPTED

input
55

correct output
5

user output
5

Test 14

Verdict: ACCEPTED

input
84

correct output
10

user output
10

Test 15

Verdict: ACCEPTED

input
72

correct output
16

user output
16

Test 16

Verdict: ACCEPTED

input
71

correct output
10

user output
10

Test 17

Verdict: ACCEPTED

input
16

correct output
5

user output
5

Test 18

Verdict: ACCEPTED

input
86

correct output
9

user output
9

Test 19

Verdict: ACCEPTED

input
81

correct output
18

user output
18

Test 20

Verdict: ACCEPTED

input
19

correct output
10

user output
10

Test 21

Verdict: ACCEPTED

input
21

correct output
9

user output
9

Test 22

Verdict: ACCEPTED

input
249

correct output
25

user output
25

Test 23

Verdict: ACCEPTED

input
835

correct output
83

user output
83

Test 24

Verdict: ACCEPTED

input
94

correct output
18

user output
18

Test 25

Verdict: ACCEPTED

input
10000

correct output
915

user output
915

Test 26

Verdict: ACCEPTED

input
100000

correct output
9098

user output
9098

Test 27

Verdict: ACCEPTED

input
1000000

correct output
90915

user output
90915