Задача 9. Друзья

N друзей постоянно берут в долг друг у друга деньги. В какой-то момент им надоело забывать кто, кому и сколько должен и они придумали систему долговых расписок. И чтобы начать новый год «с чистого листа», друзья решили и оплатить все долговые расписки, которые накопились у них друг к другу. Однако выяснилось, что иногда один и тот же человек в разные дни выступал как в роли должника, так и в роли кредитора.

Напишите программу, которая по заданным распискам вычислит, сколько всего должен каждый друг выплатить другим (или получить с других).

Сначала вводится число N – количество друзей, затем вводится число K – количество долговых расписок, после этого следует K троек чисел: номер друга взявшего в долг, номер друга давшего деньги и сумма. Гарантируется, что ни один друг не брал в долг сам у себя.

Программа должна вывести “баланс друзей”, то есть суммы, которые должны получить или отдать друзья. Положительное число означает, что друг должен получить деньги от других, отрицательное — должен отдать деньги.

Пример 1:

Кол-во друзей: 2
Долговых расписок: 3

1 расписка
Кому: 1
От кого: 2
Сколько: 10

2 расписка
Кому: 1
От кого: 2
Сколько: 20

3 расписка
Кому: 1
От кого: 2
Сколько: 20

Баланс друзей:
1 : -50
2 : 50

Пример 2:

Кол-во друзей: 3
Долговых расписок: 1

1 расписка
Кому: 3
От кого: 1
Сколько: 100

Баланс друзей:
1 : 100
2 : 0
3 : -100

Решение:

friend = int(input('Кол-во друзей: '))
receipt = int(input('Долговых расписок: '))
friends_list = []

for _ in range(friend):
    friends_list.append(0)

for number in range(receipt):
    print(f'\n{number + 1} расписка')
    to_who = int(input('Кому: '))
    from_who = int(input('От кого: '))
    how_much = int(input('Сколько: '))
    friends_list[from_who - 1] += how_much
    friends_list[to_who - 1] -= how_much

print('\nБаланс друзей:')
for index in range(len(friends_list)):
    print(f'{index + 1} : {friends_list[index]}')

3850login-checkЗадача 9. Друзья

Добавить комментарий