Submission details
Task:Babaza Game
Sender:aalto26am_033
Submission time:2026-08-31 23:24:16 +0300
Language:Python3 (PyPy3)
Status:READY
Result:
Test results
testverdicttime
#1ACCEPTED0.04 sdetails
#2ACCEPTED0.04 sdetails
#3ACCEPTED0.04 sdetails
#40.06 sdetails
#5ACCEPTED0.04 sdetails
#6ACCEPTED0.04 sdetails
#70.06 sdetails
#80.06 sdetails
#9ACCEPTED0.04 sdetails
#10ACCEPTED0.04 sdetails
#11ACCEPTED0.04 sdetails
#120.06 sdetails
#13ACCEPTED0.04 sdetails
#140.06 sdetails

Code

def bestStep(start: str, goal: str):
    print(start)
    if start != goal:
        oneMove = True
        for i in range(0,len(start)-1):
            oneMove = oneMove and (start[i] == goal[i] or start[i+1] == goal[i+1])
        if oneMove:
            return bestStep(goal,goal)
        blocked = [False for i in range(0,len(start))]
        for i in range(0,len(start)-1):
            blocked[i] = blocked[i]     or (start[i+1] == goal[i])
            blocked[i+1] = blocked[i+1] or (start[i] == goal[i+1])
        twoMove = True
        for i in range(0,len(start)-1):
            twoMove = twoMove and (not blocked[i] or not blocked[i+1])
        free = list(set(list(map(chr, range(ord('A'), ord('Z')+1)))).difference(set(list(start)).union(set(list(goal)))))[0]
        if twoMove:
            def helper(i):
                if blocked[i]: 
                    return start[i] 
                else: 
                    if i != len(blocked):
                        blocked[i+1] = True
                    return goal[i]
            
            return bestStep(''.join([helper(i) for i in range(0,len(start))]),goal)
        def helper2(i):
            if ((i%2) == 1): 
                return free 
            else: 
                return start[i]
        return bestStep(''.join([helper2(i) for i in range(0,len(start))]),goal)
                
                

bestStep(input(),input())

Test details

Test 1

Verdict: ACCEPTED

input
A
B

correct output
A
B

user output
A
B

Test 2

Verdict: ACCEPTED

input
BABAZA
BACBCB

correct output
BABAZA
BACACA
BACBCB

user output
BABAZA
BACACA
BACBCB

Test 3

Verdict: ACCEPTED

input
AB
BA

correct output
AB
CB
CA
BA

user output
AB
AC
BC
BA

Test 4

Verdict:

input
ABC
BCD

correct output
ABC
DBD
DCD
BCD

user output
ABC
AEC

Error:
Traceback (most recent call last):
  File "/box/input/code.py", line 37, in <module>
    bestStep(input(),input())
  File "/box/input/code.py", line 33, in bestStep
    return bestStep(''.join([helper2(i) for i in range(0,len(start))]),goal)
  File "/box/input/code.py", line 27, in bestStep
    return bestStep(''.join([helper(i) for i in range(0,len(start))]),goal)
  File "/box/input/code.py", line 27, in <listcomp>
    return bestStep(''.join([helper(i) for i in range(0,len(start))]),goal)
  File "/box/input/code.py", line 24, in helper
    blocked[i+1] = True
IndexError: list index out of range

Test 5

Verdict: ACCEPTED

input
AXYB
CXYD

correct output
AXYB
CXYD

user output
AXYB
CXYD

Test 6

Verdict: ACCEPTED

input
LMIJLF
PAQBMH

correct output
LMIJLF
PMQJMF
PAQBMH

user output
LMIJLF
PMQJMF
PAQBMH

Test 7

Verdict:

input
PNIWLSLIH
CRLVPUFHD

correct output
PNIWLSLIH
CNLWPSFID
CRLVPUFHD

user output
PNIWLSLIH

Error:
Traceback (most recent call last):
  File "/box/input/code.py", line 37, in <module>
    bestStep(input(),input())
  File "/box/input/code.py", line 27, in bestStep
    return bestStep(''.join([helper(i) for i in range(0,len(start))]),goal)
  File "/box/input/code.py", line 27, in <listcomp>
    return bestStep(''.join([helper(i) for i in range(0,len(start))]),goal)
  File "/box/input/code.py", line 24, in helper
    blocked[i+1] = True
IndexError: list index out of range

Test 8

Verdict:

input
ZDYIAVTKL
ZJKVXGAUM

correct output
ZDYIAVTKL
ZJYVAGTUL
ZJKVXGAUM

user output
ZDYIAVTKL

Error:
Traceback (most recent call last):
  File "/box/input/code.py", line 37, in <module>
    bestStep(input(),input())
  File "/box/input/code.py", line 27, in bestStep
    return bestStep(''.join([helper(i) for i in range(0,len(start))]),goal)
  File "/box/input/code.py", line 27, in <listcomp>
    return bestStep(''.join([helper(i) for i in range(0,len(start))]),goal)
  File "/box/input/code.py", line 24, in helper
    blocked[i+1] = True
IndexError: list index out of range

Test 9

Verdict: ACCEPTED

input
FBIXISJH
NXZIESMG

correct output
FBIXISJH
NBZXESMH
NXZIESMG

user output
FBIXISJH
NBZXESMH
NXZIESMG

Test 10

Verdict: ACCEPTED

input
OPGW
QJIE

correct output
OPGW
QPIW
QJIE

user output
OPGW
QPIW
QJIE

Test 11

Verdict: ACCEPTED

input
DUKNPKQZBL
NZPBMOEBIC

correct output
DUKNPKQZBL
NUPNMKEZIL
NZPBMOEBIC

user output
DUKNPKQZBL
NUPNMKEZIL
NZPBMOEBIC

Test 12

Verdict:

input
ZWDTX
HZOXI

correct output
ZWDTX
HWOTI
HZOXI

user output
ZWDTX

Error:
Traceback (most recent call last):
  File "/box/input/code.py", line 37, in <module>
    bestStep(input(),input())
  File "/box/input/code.py", line 27, in bestStep
    return bestStep(''.join([helper(i) for i in range(0,len(start))]),goal)
  File "/box/input/code.py", line 27, in <listcomp>
    return bestStep(''.join([helper(i) for i in range(0,len(start))]),goal)
  File "/box/input/code.py", line 24, in helper
    blocked[i+1] = True
IndexError: list index out of range

Test 13

Verdict: ACCEPTED

input
URJF
ITIQ

correct output
URJF
IRIF
ITIQ

user output
URJF
IRIF
ITIQ

Test 14

Verdict:

input
WYWBWU
IRYVBA

correct output
WYWBWU
WRWVWA
IRYVBA

user output
WYWBWU

Error:
Traceback (most recent call last):
  File "/box/input/code.py", line 37, in <module>
    bestStep(input(),input())
  File "/box/input/code.py", line 27, in bestStep
    return bestStep(''.join([helper(i) for i in range(0,len(start))]),goal)
  File "/box/input/code.py", line 27, in <listcomp>
    return bestStep(''.join([helper(i) for i in range(0,len(start))]),goal)
  File "/box/input/code.py", line 24, in helper
    blocked[i+1] = True
IndexError: list index out of range