Submission details
Task:Counter
Sender:ind1f
Submission time:2025-11-26 17:42:05 +0200
Language:C++ (C++17)
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.01 sdetails
#2ACCEPTED0.01 sdetails
#3ACCEPTED0.01 sdetails
#4ACCEPTED0.01 sdetails
#5ACCEPTED0.01 sdetails
#6ACCEPTED0.01 sdetails
#7ACCEPTED0.01 sdetails
#8ACCEPTED0.01 sdetails
#9ACCEPTED0.01 sdetails
#10ACCEPTED0.01 sdetails
#11ACCEPTED0.01 sdetails
#12ACCEPTED0.01 sdetails
#13ACCEPTED0.01 sdetails
#14ACCEPTED0.01 sdetails
#15ACCEPTED0.01 sdetails
#16ACCEPTED0.01 sdetails
#17ACCEPTED0.01 sdetails
#18ACCEPTED0.01 sdetails
#19ACCEPTED0.01 sdetails
#20ACCEPTED0.01 sdetails
#21ACCEPTED0.01 sdetails
#22ACCEPTED0.01 sdetails
#23ACCEPTED0.01 sdetails
#24ACCEPTED0.01 sdetails
#25ACCEPTED0.01 sdetails
#26ACCEPTED0.01 sdetails
#27ACCEPTED0.03 sdetails

Code

#include <iostream>
#include <cstring>
#include <queue>

const int N = 1e6 + 5;

int x;
int f[N];

int main() {
  std::ios::sync_with_stdio(false);
  std::cin.tie(0);
  std::memset(f, 0x3f, sizeof(f));
  std::cin >> x;
  std::priority_queue<std::pair<int, int>> pq;
  f[0] = 0;
  pq.push({-f[0], 0});
  while (!pq.empty()) {
    int cd = -pq.top().first;
    int u = pq.top().second;
    pq.pop();
    if (cd != f[u]) {
      continue;
    }
    if (0 <= u - 2 && u - 2 <= x) {
      if (f[u - 2] > f[u] + 1) {
        f[u - 2] = f[u] + 1;
        pq.push({-f[u - 2], u - 2});
      }
    }
    if (0 <= u + 11 && u + 11 <= x) {
      if (f[u + 11] > f[u] + 1) {
        f[u + 11] = f[u] + 1;
        pq.push({-f[u + 11], u + 11});
      }
    }
  }
  std::cout << (f[x] == 0x3f3f3f3f ? -1 : f[x]) << '\n';
  return 0;
}

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