Problem p02692 (python)

Fixed submission:
n,a,b,c=map(int,input().split())
arr=[input() for _ in range(n)]
if (a==0 and b==0) or (a==0 and c==0) or (b==0 and c==0):
  ans=[]
  for i in range(n):
    if arr[i]=='AB':
      if a==0 and b==0:
        print('No')
        break
      else:
        if a>b:
          a-=1
          b+=1
          ans.append('B')
        elif a<b:
          a+=1
          b-=1
          ans.append('A')
        elif a==b:
          if i==n-1:
            a+=1
            b-=1
            ans.append('A')
          else:
            if arr[i+1]=='AB':
              a+=1
              b-=1
              ans.append('A')
            elif arr[i+1]=='AC':
              a+=1
              b-=1
              ans.append('A')
            elif arr[i+1]=='BC':
              a-=1
              b+=1
              ans.append('B')
    elif arr[i]=='AC':
      if a==0 and c==0:
        print('No')
        break
      else:
        if a>c:
          a-=1
          c+=1
          ans.append('C')
        elif a<c:
          a+=1
          c-=1
          ans.append('A')
        elif a==c:
          if i==n-1:
            a+=1
            c-=1
            ans.append('A')
          else:
            if arr[i+1]=='AC':
              a+=1
              c-=1
              ans.append('A')
            elif arr[i+1]=='AB':
              a+=1
              c-=1
              ans.append('A')
            elif arr[i+1]=='BC':
              a-=1
              c+=1
              ans.append('C')
    elif arr[i]=='BC':
      if b==0 and c==0:
        print('No')
        break
      else:
        if b>c:
          b-=1
          c+=1
          ans.append('C')
        elif b<c:
          b+=1
          c-=1
          ans.append('B')
        elif b==c:
          if i==n-1:
            b+=1
            c-=1
            ans.append('B')
          else:
            if arr[i+1]=='BC':
              b+=1
              c-=1
              ans.append('B')
            elif arr[i+1]=='AB':
              b+=1
              c-=1
              ans.append('B')
            elif arr[i+1]=='AC':
              b-=1
              c+=1
              ans.append('C')
  else:
    print('Yes')
    for i in range(n):
      print(ans[i])
else:
  print('Yes')
  ans=[]
  for i in range(n):
    if arr[i]=='AB':
      if a>b:
        a-=1
        b+=1
        ans.append('B')
      elif a<b:
        a+=1
        b-=1
        ans.append('A')
      elif a==b:
        if i==n-1:
          a+=1
          b-=1
          ans.append('A')
        else:
          if arr[i+1]=='AB':
            a+=1
            b-=1
            ans.append('A')
          elif arr[i+1]=='AC':
            a+=1
            b-=1
            ans.append('A')
          elif arr[i+1]=='BC':
            a-=1
            b+=1
            ans.append('B')
    elif arr[i]=='AC':
      if a>c:
        a-=1
        c+=1
        ans.append('C')
      elif a<c:
        a+=1
        c-=1
        ans.append('A')
      elif a==c:
        if i==n-1:
          a+=1
          c-=1
          ans.append('A')
        else:
          if arr[i+1]=='AC':
            a+=1
            c-=1
            ans.append('A')
          elif arr[i+1]=='AB':
            a+=1
            c-=1
            ans.append('A')
          elif arr[i+1]=='BC':
            a-=1
            c+=1
            ans.append('C')
    elif arr[i]=='BC':
      if b>c:
        b-=1
        c+=1
        ans.append('C')
      elif b<c:
        b+=1
        c-=1
        ans.append('B')
      elif b==c:
        if i==n-1:
          b+=1
          c-=1
          ans.append('B')
        else:
          if arr[i+1]=='BC':
            b+=1
            c-=1
            ans.append('B')
          elif arr[i+1]=='AB':
            b+=1
            c-=1
            ans.append('B')
          elif arr[i+1]=='AC':
            b-=1
            c+=1
            ans.append('C')
  for i in range(n):
    print(ans[i])

Buggy submission (verdict: Runtime Error):
n,a,b,c=map(int,input().split())
arr=[input() for _ in range(n)]
if (a==0 and b==0) or (a==0 and c==0) or (b==0 and c==0):
  ans=[]
  for i in range(n):
    if arr[i]=='AB':
      if a==0 and b==0:
        print('No')
        break
      else:
        if a>b:
          a-=1
          b+=1
          ans.append('B')
        elif a<b:
          a+=1
          b-=1
          ans.append('A')
        elif a==b:
          if i==n-1:
            a+=1
            b-=1
            ans.append('A')
          else:
            if arr[i+1]=='AB':
              a+=1
              b-=1
              ans.append('A')
            elif arr[i+1]=='AC':
              a+=1
              b-=1
              ans.append('A')
            elif arr[i+1]=='BC':
              a-=1
              b+=1
              ans.append('B')
    elif arr[i]=='AC':
      if a==0 and c==0:
        print('No')
        break
      else:
        if a>c:
          a-=1
          c+=1
          ans.append('C')
        elif a<c:
          a+=1
          c-=1
          ans.append('A')
        elif a==c:
          if i==n-1:
            a+=1
            c-=1
            ans.append('A')
          else:
            if arr[i+1]=='AC':
              a+=1
              c-=1
              ans.append('A')
            elif arr[i+1]=='AB':
              a+=1
              c-=1
              ans.append('A')
            elif arr[i+1]=='BC':
              a-=1
              c+=1
              ans.append('C')
    elif arr[i]=='BC':
      if b==0 and c==0:
        print('No')
        break
      else:
        if b>c:
          b-=1
          c+=1
          ans.append('C')
        elif b<c:
          b+=1
          c-=1
          ans.append('B')
        elif a==c:
          if i==n-1:
            b+=1
            c-=1
            ans.append('B')
          else:
            if arr[i+1]=='BC':
              b+=1
              c-=1
              ans.append('B')
            elif arr[i+1]=='AB':
              b+=1
              c-=1
              ans.append('B')
            elif arr[i+1]=='AC':
              b-=1
              c+=1
              ans.append('C')
  else:
    print('Yes')
    for i in range(n):
      print(ans[i])
else:
  print('Yes')
  ans=[]
  for i in range(n):
    if arr[i]=='AB':
      if a>b:
        a-=1
        b+=1
        ans.append('B')
      elif a<b:
        a+=1
        b-=1
        ans.append('A')
      elif a==b:
        if i==n-1:
          a+=1
          b-=1
          ans.append('A')
        else:
          if arr[i+1]=='AB':
            a+=1
            b-=1
            ans.append('A')
          elif arr[i+1]=='AC':
            a+=1
            b-=1
            ans.append('A')
          elif arr[i+1]=='BC':
            a-=1
            b+=1
            ans.append('B')
    elif arr[i]=='AC':
      if a>c:
        a-=1
        c=1
        ans.append('C')
      elif a<c:
        a+=1
        c=1
        ans.append('A')
      elif a==c:
        if i==n-1:
          a+=1
          c-=1
          ans.append('A')
        else:
          if arr[i+1]=='AC':
            a+=1
            c-=1
            ans.append('A')
          elif arr[i+1]=='AB':
            a+=1
            c-=1
            ans.append('A')
          elif arr[i+1]=='BC':
            a-=1
            c+=1
            ans.append('C')
    elif arr[i]=='BC':
      if b>c:
        b-=1
        c+=1
        ans.append('C')
      elif b<c:
        b+=1
        c-=1
        ans.append('B')
      elif b==c:
        if i==n-1:
          b+=1
          c-=1
          ans.append('B')
        else:
          if arr[i+1]=='BC':
            b+=1
            c-=1
            ans.append('B')
          elif arr[i+1]=='AB':
            b+=1
            c-=1
            ans.append('B')
          elif arr[i+1]=='AC':
            b-=1
            c+=1
            ans.append('C')
  for i in range(n):
    print(ans[i])