Problem p02692 (python)

Fixed submission:
N,A,B,C=map(int,input().split())
S=[input() for _ in range(N)]
ans=''
for i in range(N):
    if S[i]=='AB':
        if A==0 and B==0:
            print('No')
            exit()
        elif A==1 and B==0:
            A-=1
            B+=1
            ans+='B'
        elif A==0 and B==1:
            A+=1
            B-=1
            ans+='A'
        elif A==1 and B==1 and i<N-1:
            if 'A' in S[i+1]:
                A+=1
                B-=1
                ans+='A'
            else:
                A-=1
                B+=1
                ans+='B'
        elif A>B:
            A-=1
            B+=1
            ans+='B'
        else:
            A+=1
            B-=1
            ans+='A'
    elif S[i]=='AC':
        if A==0 and C==0:
            print('No')
            exit()
        elif A==1 and C==0:
            A-=1
            C+=1
            ans+='C'
        elif A==0 and C==1:
            A+=1
            C-=1
            ans+='A'
        elif A==1 and C==1 and i<N-1:
            if 'A' in S[i+1]:
                A+=1
                C-=1
                ans+='A'
            else:
                A-=1
                C+=1
                ans+='C'
        elif A>C:
            A-=1
            C+=1
            ans+='C'
        else:
            A+=1
            C-=1
            ans+='A'
    else:
        if B==0 and C==0:
            print('No')
            exit()
        elif B==1 and C==0:
            B-=1
            C+=1
            ans+='C'
        elif B==0 and C==1:
            B+=1
            C-=1
            ans+='B'
        elif B==1 and C==1 and i<N-1:
            if 'B' in S[i+1]:
                B+=1
                C-=1
                ans+='B'
            else:
                B-=1
                C+=1
                ans+='C'
        elif B>C:
            B-=1
            C+=1
            ans+='C'
        else:
            B+=1
            C-=1
            ans+='B'
print('Yes')
for c in ans:
    print(c)

Buggy submission (verdict: Runtime Error):
N,A,B,C=map(int,input().split())
S=[input() for _ in range(N)]
ans=''
for i in range(N):
    if S[i]=='AB':
        if A==0 and B==0:
            print('No')
            exit()
        elif A==1 and B==0:
            A-=1
            B+=1
            ans+='B'
        elif A==0 and B==1:
            A+=1
            B-=1
            ans+='A'
        elif A==1 and B==1 and i<N-1:
            if A in S[i+1]:
                A+=1
                B-=1
                ans+='A'
            else:
                A-=1
                B+=1
                ans+='B'
        elif A>B:
            A-=1
            B+=1
            ans+='B'
        else:
            A+=1
            B-=1
            ans+='A'
    elif S[i]=='AC':
        if A==0 and C==0:
            print('No')
            exit()
        elif A==1 and C==0:
            A-=1
            C+=1
            ans+='C'
        elif A==0 and C==1:
            A+=1
            C-=1
            ans+='A'
        elif A==1 and C==1 and i<N-1:
            if A in S[i+1]:
                A+=1
                C-=1
                ans+='A'
            else:
                A-=1
                C+=1
                ans+='C'
        elif A>C:
            A-=1
            C+=1
            ans+='C'
        else:
            A+=1
            C-=1
            ans+='A'
    else:
        if B==0 and C==0:
            print('No')
            exit()
        elif B==1 and C==0:
            B-=1
            C+=1
            ans+='C'
        elif B==0 and C==1:
            B+=1
            C-=1
            ans+='B'
        elif B==1 and C==1 and i<N-1:
            if B in S[i+1]:
                B+=1
                C-=1
                ans+='B'
            else:
                B-=1
                C+=1
                ans+='C'
        elif B>C:
            B-=1
            C+=1
            ans+='C'
        else:
            B+=1
            C-=1
            ans+='B'
print('Yes')
for c in ans:
    print(c)

Buggy submission (verdict: Runtime Error):
N,A,B,C=map(int,input().split())
S=[input() for _ in range(N)]
ans=''
for i in range(N):
    if S[i]=='AB':
        if A==0 and B==0:
            print('No')
            exit()
        elif A==1 and B==0:
            A-=1
            B+=1
            ans+='B'
        elif A==0 and B==1:
            A+=1
            B-=1
            ans+='A'
        elif A==1 and B==1 and i<N-1:
            if A in S[i+1]:
                A+=1
                B-=1
                ans+='A'
            else:
                A-=1
                B+=1
                ans+='B'
        elif A>B:
            A-=1
            B+=1
            ans+='B'
        else:
            A+=1
            B-=1
            ans+='A'
    elif S[i]=='AC':
        if A==0 and C==0:
            print('No')
            exit()
        elif A==1 and C==0:
            A-=1
            C+=1
            ans+='C'
        elif A==0 and C==1:
            A+=1
            C-=1
            ans+='A'
        elif A==1 and C==1 and i<N-1:
            if A in S[i+1]:
                A+=1
                C-=1
                ans+='A'
            else:
                A-=1
                C+=1
                ans+='C'
        elif A>C:
            A-=1
            C+=1
            ans+='C'
        else:
            A+=1
            C-=1
            ans+='A'
    else:
        if B==0 and C==0:
            print('No')
            exit()
        elif B==1 and C==0:
            B-=1
            C+=1
            ans+='C'
        elif B==0 and C==1:
            B+=1
            C-=1
            ans+='B'
        elif B==1 and C==1 and i<N-1:
            if B in S[i+1]:
                B+=1
                C-=1
                ans+='B'
            else:
                B-=1
                C+=1
                ans+='C'
        elif B>C:
            B-=1
            C+=1
            ans+='C'
        else:
            B+=1
            C-=1
            ans+='B'
print('Yes')
for c in ans:
    print(c)