Submission details
Task:Lukujono
Sender:3lv11ra
Submission time:2025-11-08 23:56:56 +0200
Language:text
Status:READY
Result:0
Feedback
groupverdictscore
#10
Test results
testverdicttimescore
#10.00 s0details

Code

def run_program(commands, variables):
    i = 0
    while i < len(commands):
        cmd = commands[i]
        parts = cmd.split()

        if parts[0] == "CLEAR":
            variables[parts[1]] = 0

        elif parts[0] == "INCREASE":
            variables[parts[1]] += 1

        elif parts[0] == "PRINT":
            print(variables[parts[1]], end=' ')

        elif parts[0] == "REPEAT":
            count_var = parts[1]
            count = variables[count_var]
            # Etsi silmukan sisältö
            inner = []
            i += 1
            depth = 1
            while i < len(commands):
                line = commands[i]
                if line.startswith("REPEAT"):
                    depth += 1
                elif line == ")":
                    depth -= 1
                    if depth == 0:
                        break
                inner.append(line)
                i += 1
            # Suorita sisäinen koodi 'count' kertaa
            for _ in range(count):
                run_program(inner, variables)
        i += 1


def main():
    import sys
    # Lue koko ohjelma syötteestä
    code = sys.stdin.read().strip().splitlines()
    # Poista kommentit ja tyhjät rivit
    cleaned = []
    for line in code:
        line = line.strip()
        if not line or line.startswith("#"):
            continue
        # sallitaan useampi komento samalla rivillä
        cleaned.extend(line.split(")"))
        cleaned = [cmd.strip() + ")" if i < len(cleaned) - 1 else cmd.strip() for i, cmd in enumerate(cleaned)]
    # Korjataan ylimääräiset splitit
    final = []
    for line in code:
        line = line.strip()
        if not line or line.startswith("#"):
            continue
        for cmd in line.split(")"):
            cmd = cmd.strip()
            if cmd:
                if not cmd.endswith(")"):
                    final.append(cmd)
                else:
                    final.append(cmd)
    # Yksinkertaistetaan: käsitellään vain sanat
    final = []
    tokens = []
    for line in code:
        line = line.strip()
        if not line or line.startswith("#"):
            continue
        tokens.extend(line.split())
    # Palautetaan rivitasoinen lista
    lines = []
    i = 0
    while i < len(tokens):
        token = tokens[i]
        if token == "REPEAT":
            lines.append("REPEAT " + tokens[i+1])
            i += 3  # ohitetaan TIMES (
        elif token == ")":
            lines.append(")")
            i += 1
        else:
            lines.append(token + " " + tokens[i+1])
            i += 2
    # Suoritetaan
    variables = {chr(c): 0 for c in range(ord('A'), ord('Z') + 1)}
    run_program(lines, variables)


if __name__ == "__main__":
    main()

Test details

Test 1 (public)

Verdict:

input
(empty)

correct output
(empty)

user output
def run_program(commands, vari...

Feedback: Error: invalid command def