Submission details
Task:Lukujono
Sender:NicholasAhman
Submission time:2025-11-19 21:07:33 +0200
Language:text
Status:READY
Result:27
Feedback
groupverdictscore
#1ACCEPTED27
Test results
testverdicttimescore
#1ACCEPTED0.00 s27details

Code

# --- 1. SETUP CONSTANTS ---
# Create 1 (O) and Loop Limit (M = 512)
INCREASE O

INCREASE M
REPEAT M TIMES ( INCREASE M )
REPEAT M TIMES ( INCREASE M )
REPEAT M TIMES ( INCREASE M )
REPEAT M TIMES ( INCREASE M )
REPEAT M TIMES ( INCREASE M )
REPEAT M TIMES ( INCREASE M )
REPEAT M TIMES ( INCREASE M )
REPEAT M TIMES ( INCREASE M )
REPEAT M TIMES ( INCREASE M )

# F is the Run Flag. F=1 means "Go", F=0 means "Stop".
CLEAR F
INCREASE F

# --- 2. MAIN LOOP ---
REPEAT M TIMES (
    
    # --- STEP A: PRINT X ---
    REPEAT F TIMES (
        PRINT X
    )

    # --- STEP B: EXECUTE LOGIC ---
    REPEAT F TIMES (
        
        # 1. Ping-Pong Division
        # Calculates Q (Quotient) and R (Remainder)
        # T is a Toggle that forces strictly alternating states.
        # We ensure T is always 0 at the start of an iteration.
        
        CLEAR Q
        CLEAR R
        CLEAR T
        
        REPEAT X TIMES (
            # Start of iter: T is 0. Set T to 1.
            INCREASE T
            
            # If R is 1: We found a pair.
            # Actions: Increment Q, Reset R to 0, Reset T to 0.
            # Cost: 3 Ops.
            REPEAT R TIMES (
                INCREASE Q
                CLEAR R
                CLEAR T
            )
            
            # If R was 0: Loop above skipped. T is still 1.
            # Actions: Set R to 1, Reset T to 0.
            # Cost: 2 Ops.
            REPEAT T TIMES (
                INCREASE R
                CLEAR T
            )
        )
        
        # 2. Inverted Stop Check
        # We need to know if Q == 0 (meaning X was 1).
        # We use Z as an inverter flag.
        
        # Set Z = 1
        CLEAR Z
        INCREASE Z
        
        # If Q > 0, Clear Z.
        REPEAT Q TIMES ( CLEAR Z )
        
        # If Z is still 1, it means Q was 0. Stop the program (Clear F).
        REPEAT Z TIMES ( CLEAR F )
        
        # 3. Update X
        # Only runs if F is still 1 (i.e., X was not 1).
        REPEAT F TIMES (
            CLEAR X
            
            # Base: Set X = Q
            REPEAT Q TIMES ( INCREASE X )
            
            # Odd Correction:
            # If R=1 (Odd), X should be 3(Original X) + 1.
            # Since Original X = 2Q + 1, new X = 6Q + 4.
            # We have Q. We need to add 5Q + 4.
            REPEAT R TIMES (
                REPEAT Q 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
# --- 1. SETUP CONSTANTS ---
# Create 1 (O) and Loop Limit ...

Feedback: 277 tests processed (command limit exceeded)