Submission details
Task:Tulkki
Sender:Tmotomaster
Submission time:2025-10-27 20:26:23 +0200
Language:C++ (C++20)
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#10.00 s1, 2, 3details
#20.00 s1, 2, 3details
#30.00 s1, 2, 3details
#40.00 s1, 2, 3details
#50.00 s1, 2, 3details
#60.00 s1, 2, 3details
#70.00 s2, 3details
#80.00 s2, 3details
#90.00 s2, 3details
#100.00 s2, 3details
#110.00 s2, 3details
#120.00 s2, 3details
#130.00 s3details
#140.00 s3details
#150.00 s3details
#160.00 s3details
#170.00 s3details
#180.00 s3details

Compiler report

input/code.cpp: In member function 'void Command::exec()':
input/code.cpp:26:12: warning: array subscript has type 'char' [-Wchar-subscripts]
   26 |       vars[var] = 0;
      |            ^~~
input/code.cpp:28:14: warning: array subscript has type 'char' [-Wchar-subscripts]
   28 |       ++vars[var];
      |              ^~~
input/code.cpp:30:20: warning: array subscript has type 'char' [-Wchar-subscripts]
   30 |       cout << vars[var] << ' ';
      |                    ^~~
input/code.cpp:32:30: warning: array subscript has type 'char' [-Wchar-subscripts]
   32 |       int repeatCount = vars[var];
      |                              ^~~
input/code.cpp:34:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<Command*>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   34 |         for (int j = 0; j < insides.size(); j++) {
      |                         ~~^~~~~~~~~~~~~~~~
input/code.cpp: In function 'int main()':
input/code.cpp:50:21...

Code

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

int vars[26] = {0};

struct Command {
  int type;
  char var;
  vector<Command*> insides;
  Command* parent = nullptr;

  Command(int t, int v, Command* p) {
    type = t;
    var = v - 'A';
    parent = p;
  }

  void addInside(Command* c) {
    insides.push_back(c);
  }

  void exec() {
    if (type == 0) {
      vars[var] = 0;
    } else if (type == 1) {
      ++vars[var];
    } else if (type == 2) {
      cout << vars[var] << ' ';
    } else if (type == 3) {
      int repeatCount = vars[var];
      for (int _ = 0; _ < repeatCount; ++_) {
        for (int j = 0; j < insides.size(); j++) {
          insides[j]->exec();
        }
      }
    }
  }
};

int main() {
  freopen("test.txt", "r", stdin);
  string code;
  getline(cin, code, (char)EOF);

  vector<Command*> commands;
  bool commenting = false;
  Command* looping = nullptr;
  for (int i = 0; i < code.length(); i++) {
    if (!commenting) {
      if (code[i] == '#') {
        commenting = true;
      } else if (code[i] == 'C') {
        i += 6;
        Command* newCommand = new Command(0, code[i], looping);
        if (looping == nullptr) {
          commands.push_back(newCommand);
        } else {
          looping->addInside(newCommand);
        }
      } else if (code[i] == 'I') {
        i += 9;
        Command* newCommand = new Command(1, code[i], looping);
        if (looping == nullptr) {
          commands.push_back(newCommand);
        } else {
          looping->addInside(newCommand);
        }
      } else if (code[i] == 'P') {
        i += 6;
        Command* newCommand = new Command(2, code[i], looping);
        if (looping == nullptr) {
          commands.push_back(newCommand);
        } else {
          looping->addInside(newCommand);
        }
      } else if (code[i] == 'R') {
        i += 7;
        Command* newCommand = new Command(3, code[i], looping);
        if (looping == nullptr) {
          commands.push_back(newCommand);
        } else {
          looping->addInside(newCommand);
        }
        i += 9;
        looping = newCommand;
      } else if (code[i] == ')') {
        looping = looping->parent;
      }
    } else if (code[i] == '\n') {
      commenting = false;
    }
  }
  // parsing done

  for (int i = 0; i < commands.size(); i++) {
    commands[i]->exec();
  }
  return 0;
}

Test details

Test 1 (public)

Group: 1, 2, 3

Verdict:

input
PRINT X
INCREASE X
PRINT X
INCREASE X
PRINT X
...

correct output
0 1 2 0 

user output
(empty)

Feedback: Output is shorter than expected

Test 2 (public)

Group: 1, 2, 3

Verdict:

input
INCREASE
X
# aybabtu
   PRINT    X
INCREASE # test
...

correct output
1 3 

user output
(empty)

Feedback: Output is shorter than expected

Test 3 (public)

Group: 1, 2, 3

Verdict:

input
# Create number 3
INCREASE X
INCREASE X
INCREASE X

...

correct output

user output
(empty)

Feedback: Output is shorter than expected

Test 4 (public)

Group: 1, 2, 3

Verdict:

input
INCREASE A
PRINT A
INCREASE B
PRINT B
INCREASE C
...

correct output
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

user output
(empty)

Feedback: Output is shorter than expected

Test 5 (public)

Group: 1, 2, 3

Verdict:

input
INCREASE X
INCREASE X
INCREASE X
INCREASE X
INCREASE X
...

correct output
999 

user output
(empty)

Feedback: Output is shorter than expected

Test 6 (public)

Group: 1, 2, 3

Verdict:

input
PRINT X
PRINT X
PRINT X
PRINT X
PRINT X
...

correct output
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

user output
(empty)

Feedback: Output is shorter than expected

Test 7 (public)

Group: 2, 3

Verdict:

input
INCREASE A
INCREASE A
INCREASE A
INCREASE A
INCREASE A
...

correct output
5 5 5 5 5 

user output
(empty)

Feedback: Output is shorter than expected

Test 8 (public)

Group: 2, 3

Verdict:

input
INCREASE A
INCREASE A
INCREASE A
INCREASE A
INCREASE A
...

correct output
0 0 0 0 0 

user output
(empty)

Feedback: Output is shorter than expected

Test 9 (public)

Group: 2, 3

Verdict:

input
INCREASE A
INCREASE A
INCREASE A
INCREASE A
INCREASE A
...

correct output
6 7 8 9 10 

user output
(empty)

Feedback: Output is shorter than expected

Test 10 (public)

Group: 2, 3

Verdict:

input
INCREASE A
INCREASE A
INCREASE A
INCREASE A
INCREASE A
...

correct output
5 5 

user output
(empty)

Feedback: Output is shorter than expected

Test 11 (public)

Group: 2, 3

Verdict:

input
INCREASE A
INCREASE A
INCREASE A
INCREASE A
INCREASE A
...

correct output
20 

user output
(empty)

Feedback: Output is shorter than expected

Test 12 (public)

Group: 2, 3

Verdict:

input
INCREASE A
INCREASE A

INCREASE B
INCREASE B
...

correct output
42 

user output
(empty)

Feedback: Output is shorter than expected

Test 13 (public)

Group: 3

Verdict:

input
INCREASE A
INCREASE A
INCREASE A
INCREASE A
INCREASE A
...

correct output
1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 

user output
(empty)

Feedback: Output is shorter than expected

Test 14 (public)

Group: 3

Verdict:

input
# Create number 3
INCREASE A INCREASE A INCREASE...

correct output
12 

user output
(empty)

Feedback: Output is shorter than expected

Test 15 (public)

Group: 3

Verdict:

input
INCREASE X
INCREASE X
INCREASE X
INCREASE X
INCREASE X
...

correct output
531441 

user output
(empty)

Feedback: Output is shorter than expected

Test 16 (public)

Group: 3

Verdict:

input
INCREASE A
INCREASE A
INCREASE A
INCREASE A
INCREASE A
...

correct output
1337 

user output
(empty)

Feedback: Output is shorter than expected

Test 17 (public)

Group: 3

Verdict:

input
INCREASE A
INCREASE A

REPEAT A TIMES (
    REPEAT A TIMES (
...

correct output
1 2 1 2 1 1 3 4 3 4 3 4 3 4 3 ...

user output
(empty)

Feedback: Output is shorter than expected

Test 18 (public)

Group: 3

Verdict:

input
# Efficient algorithm for find...

correct output
2 3 5 7 11 13 17 19 23 29 31 3...

user output
(empty)

Feedback: Output is shorter than expected