Submission details
Task:Babaza Game
Sender:usvafe
Submission time:2025-09-02 10:02:48 +0300
Language:Python3 (PyPy3)
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.06 sdetails
#2ACCEPTED0.06 sdetails
#3ACCEPTED0.06 sdetails
#4ACCEPTED0.07 sdetails
#5ACCEPTED0.06 sdetails
#6ACCEPTED0.06 sdetails
#7ACCEPTED0.06 sdetails
#8ACCEPTED0.06 sdetails
#9ACCEPTED0.06 sdetails
#10ACCEPTED0.06 sdetails
#11ACCEPTED0.06 sdetails
#12ACCEPTED0.06 sdetails
#13ACCEPTED0.06 sdetails
#14ACCEPTED0.06 sdetails

Code

import string

st = list(input())
en = list(input())

def frm(l, i):
    try:
        l.remove(i)
    except: pass

def validr(st, en, chng, i):
    if i-1 in chng or i+1 in chng: return
    if st[i] == en[i]: return
    if i > 0 and en[i] == st[i-1]: return
    if i < len(st)-1 and en[i] == st[i+1]: return
    st[i] = en[i]
    chng.append(i)

print("".join(st))
while st != en:
    lst = st[:]
    chng = []

    for i in range(len(st)):
        if (((i>0 and en[i-1] == st[i])
            or (i < len(st)-1 and en[i+1] == st[i]))
            and (i-1 not in chng)):
            validr(st, en, chng, i)


    for i in range(len(st)):
        validr(st, en, chng, i)

    last = -4
    if st == lst:
        for i in range(len(st)):
            if last == i-1: continue
            if st[i] == en[i]: continue
            valid = list(string.ascii_uppercase)
            frm(valid, st[i-1])
            frm(valid, st[i+1])
            frm(valid, en[i-1])
            frm(valid, en[i+1])
            st[i] = valid[-1]

            last = i

    print("".join(st))

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
ZB
ZA
BA

Test 4

Verdict: ACCEPTED

input
ABC
BCD

correct output
ABC
DBD
DCD
BCD

user output
ABC
ABD
ACD
BCD

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: ACCEPTED

input
PNIWLSLIH
CRLVPUFHD

correct output
PNIWLSLIH
CNLWPSFID
CRLVPUFHD

user output
PNIWLSLIH
CNLWPSFID
CRLVPUFHD

Test 8

Verdict: ACCEPTED

input
ZDYIAVTKL
ZJKVXGAUM

correct output
ZDYIAVTKL
ZJYVAGTUL
ZJKVXGAUM

user output
ZDYIAVTKL
ZJYVAGTUL
ZJKVXGAUM

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: ACCEPTED

input
ZWDTX
HZOXI

correct output
ZWDTX
HWOTI
HZOXI

user output
ZWDTX
HWOTI
HZOXI

Test 13

Verdict: ACCEPTED

input
URJF
ITIQ

correct output
URJF
IRIF
ITIQ

user output
URJF
IRIF
ITIQ

Test 14

Verdict: ACCEPTED

input
WYWBWU
IRYVBA

correct output
WYWBWU
WRWVWA
IRYVBA

user output
WYWBWU
WRWVWA
IRYVBA