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!