Submission details
Task:Tulkki
Sender:Emerald0X2
Submission time:2025-10-29 12:09:59 +0200
Language:Python3 (CPython3)
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED12
#2ACCEPTED32
#3ACCEPTED56
Test results
testverdicttimegroup
#1ACCEPTED0.02 s1, 2, 3details
#2ACCEPTED0.02 s1, 2, 3details
#3ACCEPTED0.02 s1, 2, 3details
#4ACCEPTED0.02 s1, 2, 3details
#5ACCEPTED0.02 s1, 2, 3details
#6ACCEPTED0.02 s1, 2, 3details
#7ACCEPTED0.02 s2, 3details
#8ACCEPTED0.02 s2, 3details
#9ACCEPTED0.02 s2, 3details
#10ACCEPTED0.02 s2, 3details
#11ACCEPTED0.02 s2, 3details
#12ACCEPTED0.02 s2, 3details
#13ACCEPTED0.02 s3details
#14ACCEPTED0.02 s3details
#15ACCEPTED0.49 s3details
#16ACCEPTED0.02 s3details
#17ACCEPTED0.36 s3details
#18ACCEPTED0.20 s3details

Code

variables = {
    "A": 0,
    "B": 0,
    "C": 0,
    "D": 0,
    "E": 0,
    "F": 0,
    "G": 0,
    "H": 0,
    "I": 0,
    "J": 0,
    "K": 0,
    "L": 0,
    "M": 0,
    "N": 0,
    "O": 0,
    "P": 0,
    "Q": 0,
    "R": 0,
    "S": 0,
    "T": 0,
    "U": 0,
    "V": 0,
    "W": 0,
    "X": 0,
    "Y": 0,
    "Z": 0,
}
 
text_in = ""
 
while True:
    try:
        line = input()
    except EOFError:
        break
    if(line != ""):
        if "#" in line:
            line = line.split("#", 1)[0].strip()
        if(line != "" or str.isspace(line)):    
            text_in += line.strip().strip() + " "
 
text_in = text_in.split(" ")

command = ""
repeat_loop = False
repeats_found = 1
closing_brackets_found = 0

parsed = []

for line in text_in:
    if repeat_loop:
        if repeats_found > closing_brackets_found:
            if(line == "REPEAT"):
                repeats_found += 1
                command += line + " "
            elif(line == ")"):
                closing_brackets_found += 1  
                command += line + " "
            else:
                command += line + " "
        else:
            parsed.append(command.strip())
            command = ""
            repeat_loop = False

    if((line == "PRINT" or line == "INCREASE" or line == "CLEAR") and not repeat_loop):
        command = line
       
    elif (line == "REPEAT" and not repeat_loop):
        command = line + " "
        repeat_loop = True
        repeats_found = 1
        closing_brackets_found = 0
    
    elif(line in variables and command != "" and not repeat_loop):
        parsed.append(command + " " + line)
        command = ""

def _repeat(count, _command):

    _loop = _command.split()

    loop_command = []

    command = ""
    repeat_loop = False
    repeats_found = 1
    closing_brackets_found = 0

    for _line in _loop:
        _line = _line.strip()
        if repeat_loop:
            if repeats_found > closing_brackets_found:
                if(_line == "REPEAT"):
                    repeats_found += 1
                    command += _line + " "
                elif(_line == ")"):
                    closing_brackets_found += 1
                    command += _line + " "
                else:
                    command += _line + " "
            if repeats_found <= closing_brackets_found:
                loop_command.append(command.strip())
                command = ""
                repeat_loop = False

        if((_line == "PRINT" or _line == "INCREASE" or _line == "CLEAR") and not repeat_loop):
            command = _line
        
        elif (_line == "REPEAT" and not repeat_loop):
            command = _line + " "
            repeat_loop = True
            repeats_found = 1
            closing_brackets_found = 0
            
        elif(_line in variables and command != "" and not repeat_loop):
            loop_command.append(command + " " + _line)
            command = ""

    for loop in range(count):

        for command in loop_command:
            action = command.split()[0]
            var = command.split()[1]
            match action:
                case "PRINT":
                    print(variables[var])
                case "INCREASE":
                    variables[var] += 1
                case "CLEAR":
                    variables[var] = 0
                case "REPEAT":
                    code_to_loop = command[16:-1].strip()
                    _repeat(variables[var], code_to_loop)


# ----------------------------------

for command in parsed:
    action = command.split()[0]
    var = command.split()[1]
    match action:
        case "PRINT":
            print(variables[var])
        case "INCREASE":
            variables[var] += 1
        case "CLEAR":
            variables[var] = 0
        case "REPEAT":
            code_to_loop = command[16:-1].strip()
            _repeat(variables[var], code_to_loop)

Test details

Test 1 (public)

Group: 1, 2, 3

Verdict: ACCEPTED

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

correct output
0 1 2 0 

user output
0
1
2
0

Test 2 (public)

Group: 1, 2, 3

Verdict: ACCEPTED

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

correct output
1 3 

user output
1
3

Test 3 (public)

Group: 1, 2, 3

Verdict: ACCEPTED

input
# Create number 3
INCREASE X
INCREASE X
INCREASE X

...

correct output

user output
3

Test 4 (public)

Group: 1, 2, 3

Verdict: ACCEPTED

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
1
1
1
1
1
...

Test 5 (public)

Group: 1, 2, 3

Verdict: ACCEPTED

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

correct output
999 

user output
999

Test 6 (public)

Group: 1, 2, 3

Verdict: ACCEPTED

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
0
0
0
0
0
...

Test 7 (public)

Group: 2, 3

Verdict: ACCEPTED

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

correct output
5 5 5 5 5 

user output
5
5
5
5
5

Test 8 (public)

Group: 2, 3

Verdict: ACCEPTED

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

correct output
0 0 0 0 0 

user output
0
0
0
0
0

Test 9 (public)

Group: 2, 3

Verdict: ACCEPTED

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

correct output
6 7 8 9 10 

user output
6
7
8
9
10

Test 10 (public)

Group: 2, 3

Verdict: ACCEPTED

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

correct output
5 5 

user output
5
5

Test 11 (public)

Group: 2, 3

Verdict: ACCEPTED

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

correct output
20 

user output
20

Test 12 (public)

Group: 2, 3

Verdict: ACCEPTED

input
INCREASE A
INCREASE A

INCREASE B
INCREASE B
...

correct output
42 

user output
42

Test 13 (public)

Group: 3

Verdict: ACCEPTED

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
1
2
2
3
3
...

Test 14 (public)

Group: 3

Verdict: ACCEPTED

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

correct output
12 

user output
12

Test 15 (public)

Group: 3

Verdict: ACCEPTED

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

correct output
531441 

user output
531441

Test 16 (public)

Group: 3

Verdict: ACCEPTED

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

correct output
1337 

user output
1337

Test 17 (public)

Group: 3

Verdict: ACCEPTED

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
1
2
1
2
1
...

Test 18 (public)

Group: 3

Verdict: ACCEPTED

input
# Efficient algorithm for find...

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

user output
2
3
5
7
11
...