Submission details
Task:Tulkki
Sender:Emerald0X2
Submission time:2025-10-28 20:01:53 +0200
Language:Python3 (CPython3)
Status:READY
Result:44
Feedback
groupverdictscore
#1ACCEPTED12
#2ACCEPTED32
#30
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
#130.02 s3details
#140.02 s3details
#150.02 s3details
#160.02 s3details
#170.02 s3details
#180.02 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() + " "
 
parsed = []
 
lines = text_in.split(" ")
 
whitespace_count = lines.count("")
for i in range(whitespace_count):
    lines.remove("")
 
pos = 0
 
while pos < len(lines)-1:
    if(lines[pos] != "REPEAT"):
        parsed.append(lines[pos].strip() + " " + lines[pos+1].strip())
    elif(lines[pos] == "REPEAT"):
        loop_ = ""
        skipped = 0
        closing_pos = lines.index(")", pos)
        j=pos
        while j < closing_pos:
            loop_ += lines[j] + " "
            if(lines[j] == "REPEAT"):
                closing_pos = lines.index(")", closing_pos-1)
                skipped += 1
            skipped += 1
            j+=1
        pos += skipped-2
        loop_ = loop_.strip()
        parsed.append(loop_)
    pos += 2
 
repeating = False

def repeat(count, repeat):
    for i in range(count):
        for line in repeat:
            match line.split(" ")[0]:
                case "PRINT":
                    print(variables[line.split(" ")[1]])
                case "INCREASE":
                    variables[line.split(" ")[1]] += 1
                case "CLEAR":
                    variables[line.split(" ")[1]] = 0
                case "REPEAT":
                    pos = 0
 
                    loop_code = []
                    code = repeat[repeat.index(line, 0)].split(" ")
                    code = code[4:]
                    if code[len(code)-1] != ")":
                        code.append(")")
                    code = code[:-1]
                    if "REPEAT" in code:
                        code.append(")")
 
                    while pos < len(code)-1:
                        if(code[pos] != "REPEAT"):
                            loop_code.append(code[pos].strip() + " " + code[pos+1].strip())
                        elif(code[pos] == "REPEAT"):
                            loop_ = ""
                            skipped = 0
                            closing_pos = code.index(")", pos)
                            j = pos
                            while j < closing_pos:
                                loop_ += code[j] + " "
                                if(code[j] == "REPEAT"):
                                    closing_pos = code.index(")", closing_pos-1)
                                    skipped += 1
                                skipped += 1
                                j+=1
                            pos += skipped-2
                            loop_ = loop_.strip()
                            loop_code.append(loop_)
                        pos += 2
 
loops = 0
 
for line in parsed:
    match line.split(" ")[0]:
        case "PRINT":
            print(variables[line.split(" ")[1]])
        case "INCREASE":
            variables[line.split(" ")[1]] += 1
        case "CLEAR":
            variables[line.split(" ")[1]] = 0
        case "REPEAT":
            pos = 0
 
            loop_code = []
            code = parsed[parsed.index(line, loops)].split(" ")
            if code[len(code)-1] != ")":
                code.append(")")
            code = code[4:]
            code = code[:-1]
            if "REPEAT" in code:
                code.append(")")
 
            while pos < len(code)-1:
                if(code[pos] != "REPEAT"):
                    loop_code.append(code[pos].strip() + " " + code[pos+1].strip())
                elif(code[pos] == "REPEAT"):
                    loop_ = ""
                    skipped = 0
                    closing_pos = code.index(")", pos)
                    j = pos
                    while j < closing_pos:
                        loop_ += code[j] + " "
                        if(code[j] == "REPEAT"):
                            closing_pos = code.index(")", closing_pos-1)
                            skipped += 1
                        skipped += 1
                        j += 1
                    pos += skipped-2
                    loop_ = loop_.strip()
                    loop_code.append(loop_)
                pos += 2

            repeat(variables[line.split(" ")[1]], loop_code)
    loops += 1  

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:

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
0

Feedback: Incorrect character on line 1 col 1: expected "12", got "0"

Test 15 (public)

Group: 3

Verdict:

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

correct output
531441 

user output
0

Feedback: Incorrect character on line 1 col 1: expected "531441", got "0"

Test 16 (public)

Group: 3

Verdict:

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

correct output
1337 

user output
0

Feedback: Incorrect character on line 1 col 1: expected "1337", got "0"

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

Feedback: Output is shorter than expected