TOPIC

Runtime error com o código funcionando

idalves0 asked 3 years ago

Olá, meu código está com runtime error, porém já investiguei muito a fundo e o código funciona perfeitamente. Poderiam me ajudar?

´´´ def e_possivel(banco, reservas, debentures, bancos): #Acessar a operação da vez; verificar se o banco devedor tem reserva o suficiente para pagar a divida com o banco credor da operação da vez; printar S caso seja possivel e N caso não seja possivel

d_string = debentures[f'{banco}']  #recebo a operacao do dicionario como string
d_list_int = list(map(int, d_string.split(","))) #converto a string para uma lista de inteiros
banco_devedor_deb = d_list_int[0]
banco_credor_deb = d_list_int[1]
valor_divida_deb = d_list_int[2]

banco_devedor_index = bancos.index(banco_devedor_deb)
banco_credor_index = bancos.index(banco_credor_deb)

reserva_devedor= reservas[banco_devedor_index]
reserva_credor = reservas[banco_credor_index]

reservas[banco_credor_index] = reserva_credor + valor_divida_deb
reservas[banco_devedor_index] = reserva_devedor - valor_divida_deb

while True: b, n = map(int, input().split(" "))

if not (b != 0 and n!= 0):
    break

bancos = [*range(1,b+1,1)]

reservas = list(map(int, input().split(" "))) #isso pega uma lista de strings e converte cada uma para um int
                               # a reserva[0] é a do banco 1 e assim por diante até a reserva[b-1] é a do banco b
debentures = {}

for i in range(n) :
    d, c, v = map(int, input().split(" "))
    debentures[f'{i}'] = f'{d}, {c}, {v}'

#O banco D deve ao C, V reais, sendo que o banco D tem sua posicao na reserva e o banco C tem sua posicao na reserva
for banco in range(n):
    e_possivel(banco, reservas, debentures, bancos)

positivos = 0
for j in range(len(reservas)):
    if reservas[j] < 0:
        continue
    else:
        positivos += 1
if positivos == b:
    print("S")
else:
    print("N")

´´´

This topic has not been answered yet. Be the first!

Remember not post solutions. Your post may be reviewed by our moderators.