Submission details
Task:Program
Sender:aalto25e_007
Submission time:2025-10-01 17:31:57 +0300
Language:C++ (C++17)
Status:READY
Result:
Test results
testverdicttimegroup
#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
#11--details
#12--details
#13--details
#14--details
#15--details
#16--details
#17--details
#18--details
#19--details
#20--details
#21--details
#22--details
#23--details
#24--details
#25--details
#26--details
#27--details
#28--details
#29--details
#30--details

Compiler report

input/code.cpp: In function 'void algorithm(int, int, std::vector<std::__cxx11::basic_string<char> >, std::vector<std::__cxx11::basic_string<char> >&, int&)':
input/code.cpp:11:24: warning: comparison of integer expressions of different signedness: 'std::vector<std::__cxx11::basic_string<char> >::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   11 |         if (acc.size() < best_steps) {
      |             ~~~~~~~~~~~^~~~~~~~~~~~
input/code.cpp:16:25: warning: comparison of integer expressions of different signedness: 'std::vector<std::__cxx11::basic_string<char> >::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   16 |     else if (acc.size() < best_steps) {
      |              ~~~~~~~~~~~^~~~~~~~~~~~
input/code.cpp: In function 'int main()':
input/code.cpp:44:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::__cxx11::basic_string<char> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   44...

Code

#include <iostream>
#include <vector>
#include <climits>

using namespace std;

void algorithm(int n, int x, vector<string> acc, vector<string> &best_sol, int &best_steps)
{
    if (x == n) {
        acc.push_back("END");
        if (acc.size() < best_steps) {
            best_steps = acc.size();
            best_sol = acc;
        }
    }
    else if (acc.size() < best_steps) {
        if (x + 3 <= n) {
            acc.push_back("ADD");
            algorithm(n, x + 3, acc, best_sol, best_steps);
            acc.pop_back();
        }
        if (x * 2 <= n) {
            acc.push_back("MUL");
            algorithm(n, x * 2, acc, best_sol, best_steps);
            acc.pop_back();
        }
    }
}

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

    vector<string> acc;
    vector<string> best_sol;
    int best_steps = INT_MAX;

    algorithm(n, 1, acc, best_sol, best_steps);

    if (best_steps == INT_MAX)
        cout << 0 << endl;
    else {
        cout << best_steps << endl;
        for (int i = 0; i < best_sol.size(); ++i) {
            cout << best_sol[i] << endl;
        }
    }
    
}

Test details

Test 1

Group:

Verdict: ACCEPTED

input
58

correct output
8
MUL
ADD
MUL
ADD
...

user output
8
ADD
ADD
ADD
ADD
...

Test 2

Group:

Verdict: ACCEPTED

input
72

correct output
0

user output
0

Test 3

Group:

Verdict: ACCEPTED

input
83

correct output
8
MUL
ADD
MUL
MUL
...

user output
8
ADD
ADD
ADD
MUL
...

Test 4

Group:

Verdict: ACCEPTED

input
53

correct output
8
ADD
MUL
ADD
MUL
...

user output
8
ADD
MUL
ADD
MUL
...

Test 5

Group:

Verdict: ACCEPTED

input
100

correct output
8
ADD
MUL
ADD
MUL
...

user output
8
ADD
MUL
ADD
MUL
...

Test 6

Group:

Verdict: ACCEPTED

input
64

correct output
6
ADD
MUL
MUL
MUL
...

user output
6
ADD
MUL
MUL
MUL
...

Test 7

Group:

Verdict: ACCEPTED

input
84

correct output
0

user output
0

Test 8

Group:

Verdict: ACCEPTED

input
60

correct output
0

user output
0

Test 9

Group:

Verdict: ACCEPTED

input
51

correct output
0

user output
0

Test 10

Group:

Verdict: ACCEPTED

input
77

correct output
9
ADD
ADD
MUL
ADD
...

user output
9
ADD
ADD
MUL
ADD
...

Test 11

Group:

Verdict:

input
941694

correct output
0

user output
(empty)

Test 12

Group:

Verdict:

input
905674

correct output
30
MUL
ADD
MUL
ADD
...

user output
(empty)

Test 13

Group:

Verdict:

input
908426

correct output
29
ADD
MUL
ADD
MUL
...

user output
(empty)

Test 14

Group:

Verdict:

input
960500

correct output
31
ADD
ADD
MUL
MUL
...

user output
(empty)

Test 15

Group:

Verdict:

input
902101

correct output
27
MUL
ADD
MUL
ADD
...

user output
(empty)

Test 16

Group:

Verdict:

input
994208

correct output
27
ADD
ADD
MUL
MUL
...

user output
(empty)

Test 17

Group:

Verdict:

input
923538

correct output
0

user output
(empty)

Test 18

Group:

Verdict:

input
950287

correct output
24
MUL
ADD
MUL
ADD
...

user output
(empty)

Test 19

Group:

Verdict:

input
950516

correct output
29
ADD
ADD
MUL
MUL
...

user output
(empty)

Test 20

Group:

Verdict:

input
921882

correct output
0

user output
(empty)

Test 21

Group:

Verdict:

input
933942296856681219

correct output
0

user output
(empty)

Test 22

Group:

Verdict:

input
955775764385016720

correct output
0

user output
(empty)

Test 23

Group:

Verdict:

input
981578916796073406

correct output
0

user output
(empty)

Test 24

Group:

Verdict:

input
927875200723222396

correct output
94
MUL
ADD
MUL
MUL
...

user output
(empty)

Test 25

Group:

Verdict:

input
990125206148420558

correct output
84
ADD
MUL
ADD
MUL
...

user output
(empty)

Test 26

Group:

Verdict:

input
964804802247123102

correct output
0

user output
(empty)

Test 27

Group:

Verdict:

input
996610423667404231

correct output
96
MUL
ADD
MUL
ADD
...

user output
(empty)

Test 28

Group:

Verdict:

input
948665008088793691

correct output
86
MUL
ADD
MUL
ADD
...

user output
(empty)

Test 29

Group:

Verdict:

input
969397787818953279

correct output
0

user output
(empty)

Test 30

Group:

Verdict:

input
918471787211371085

correct output
90
ADD
MUL
ADD
MUL
...

user output
(empty)