Submission details
Task:Forth
Sender:jlaire
Submission time:2025-10-18 05:05:58 +0300
Language:C++ (C++17)
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED100
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

Code

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

int main() {
    cin.tie(0)->sync_with_stdio(0);
    int x; cin>>x;

    vector<int> S{1};
    vector<string> ans{"DUP", "*"};
    while (S.back() < x) {
        ans.push_back("DUP");
        ans.push_back("DUP");
        ans.push_back("+");
        S.push_back(S.back() + S.back());
    }
    while (S.size() > 1) {
        if (S.back() > x) {
            S.pop_back();
            ans.push_back("DROP");
        }
        else if (S[S.size()-1] + S[S.size()-2] > x) {
            swap(S[S.size()-1], S[S.size()-2]);
            S.pop_back();
            ans.push_back("SWAP");
            ans.push_back("DROP");
        }
        else {
            S[S.size()-2] += S[S.size()-1];
            S.pop_back();
            ans.push_back("+");
        }
    }

    cout << ans.size() << '\n';
    for (int i=0, n=ans.size(); i<n; i++) {
        cout << ans[i] << " \n"[i+1==n];
    }
}

Test details

Test 1

Verdict: ACCEPTED

input
1

correct output
2
DUP
DROP

user output
2
DUP *

Test 2

Verdict: ACCEPTED

input
2

correct output
2
DUP
+

user output
7
DUP * DUP DUP + SWAP DROP

Test 3

Verdict: ACCEPTED

input
3

correct output
4
DUP
DUP
+
+

user output
10
DUP * DUP DUP + DUP DUP + DROP...

Test 4

Verdict: ACCEPTED

input
4

correct output
6
DUP
DUP
DUP
+
...

user output
12
DUP * DUP DUP + DUP DUP + SWAP...

Test 5

Verdict: ACCEPTED

input
5

correct output
8
DUP
DUP
DUP
DUP
...

user output
15
DUP * DUP DUP + DUP DUP + DUP ...

Test 6

Verdict: ACCEPTED

input
10

correct output
18
DUP
DUP
DUP
DUP
...

user output
20
DUP * DUP DUP + DUP DUP + DUP ...

Test 7

Verdict: ACCEPTED

input
42

correct output
82
DUP
DUP
DUP
DUP
...

user output
29
DUP * DUP DUP + DUP DUP + DUP ...

Test 8

Verdict: ACCEPTED

input
64

correct output
126
DUP
DUP
DUP
DUP
...

user output
32
DUP * DUP DUP + DUP DUP + DUP ...

Test 9

Verdict: ACCEPTED

input
90

correct output
178
DUP
DUP
DUP
DUP
...

user output
33
DUP * DUP DUP + DUP DUP + DUP ...

Test 10

Verdict: ACCEPTED

input
98

correct output
194
DUP
DUP
DUP
DUP
...

user output
34
DUP * DUP DUP + DUP DUP + DUP ...

Test 11

Verdict: ACCEPTED

input
99

correct output
196
DUP
DUP
DUP
DUP
...

user output
33
DUP * DUP DUP + DUP DUP + DUP ...

Test 12

Verdict: ACCEPTED

input
100

correct output
198
DUP
DUP
DUP
DUP
...

user output
34
DUP * DUP DUP + DUP DUP + DUP ...

Test 13

Verdict: ACCEPTED

input
95

correct output
188
DUP
DUP
DUP
DUP
...

user output
31
DUP * DUP DUP + DUP DUP + DUP ...