Submission details
Task:Lukujono
Sender:Tmotomaster
Submission time:2025-11-16 20:19:42 +0200
Language:text
Status:READY
Result:25
Feedback
groupverdictscore
#1ACCEPTED25
Test results
testverdicttimescore
#1ACCEPTED0.00 s25details

Code

INCREASE F # F = 1 to print 1 once at the end

INCREASE K
INCREASE K
INCREASE K

# Iterations to fake recursion
# 180 = two times 3 * 3 * 5 * 2
REPEAT K TIMES ( # 3
  REPEAT K TIMES ( # 3
    INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I
    INCREASE I INCREASE I INCREASE I INCREASE I INCREASE I
  )
)

# I = 180 (179 is max length)
# PRINT I

REPEAT I TIMES (
  # Repeat enough times for X to reach 1, but not too many

  # Goal: Execute the following part only when X > 1
  REPEAT F TIMES (
    PRINT X # Print current X
    CLEAR A # Pre-clear A - new X

    CLEAR B INCREASE B # B = 1
    CLEAR C            # C = 0
    CLEAR D INCREASE D # D = 1

    # Parse once, collect knowledge odd/even and calculate X / 2
    REPEAT X TIMES (
      REPEAT C TIMES (
        CLEAR D # X != 1 and we set D = 0
        INCREASE T # Increasing T instead of B to skip next block
        INCREASE A # Pre-calculate A = X / 2
        CLEAR C # Skip this block next turn
      )
      REPEAT B TIMES (
        INCREASE C
        CLEAR B # Skip this block next turn
      )
      REPEAT T TIMES (
        INCREASE B # Now we increase B we postponed earlier
        CLEAR T # Skip this block next turn
      )
    )
    # Now: D = 1 if X = 1
    #      B = 1 if X is even, else B = 0
    #      C = 1 if X is odd, else C = 0

    REPEAT D TIMES (
      CLEAR F # Clear when we're done (X = 1)
      CLEAR C # And skip next block
    )

    # goal: X = A * 6 + 4; when C = 1 (odd)
    REPEAT C TIMES (
      # knowledge: X = 0, A = X / 2
      REPEAT A TIMES (
        INCREASE A
        INCREASE A
        INCREASE A
        INCREASE A
        INCREASE A
      )
      INCREASE A
      INCREASE A
      INCREASE A
      INCREASE A
    )
  )

  # Now test A and put result back in X, execute only until we reach 1
  REPEAT F TIMES (
    PRINT A # Print current X
    CLEAR X # Pre-clear A - new X

    CLEAR B INCREASE B # B = 1
    CLEAR C            # C = 0
    CLEAR D INCREASE D # D = 1

    # Parse once, collect knowledge odd/even and calculate A / 2
    REPEAT A TIMES (
      REPEAT C TIMES (
        CLEAR D # A (aka X) != 1 and we set D = 0
        INCREASE T # Increasing T instead of B to skip next block
        INCREASE X # Pre-calculate X as A / 2
        CLEAR C # Skip this block next turn
      )
      REPEAT B TIMES (
        INCREASE C
        CLEAR B # Skip this block next turn
      )
      REPEAT T TIMES (
        INCREASE B # Now we increase B we postponed earlier
        CLEAR T # Skip this block next turn
      )
    )
    # Now: D = 1 if X = 1
    #      B = 1 if X is even, else B = 0
    #      C = 1 if X is odd, else C = 0

    REPEAT D TIMES (
      CLEAR F # Clear when we're done (X = 1)
      CLEAR C # To skip next block
    )

    # goal: X = X + X * 5 + 4
    REPEAT C TIMES (
      # knowledge: X = 0, A = X / 2
      REPEAT X TIMES (
        INCREASE X
        INCREASE X
        INCREASE X
        INCREASE X
        INCREASE X
      )
      INCREASE X
      INCREASE X
      INCREASE X
      INCREASE X
    )
  )
)

Test details

Test 1 (public)

Verdict: ACCEPTED

input
(empty)

correct output
(empty)

user output
INCREASE F # F = 1 to print 1 ...

Feedback: 258 tests processed (command limit exceeded)