Войти Создать аккаунт

Делим счёт · Шаг 3 из 4

Свести долги переводами

Балансы посчитаны, но человеку от них толку мало: он хочет знать, кому и сколько перевести. Переводов должно быть мало — иначе проще было считать на салфетке.

Что сделать

Превратите балансы в переводы — кому и сколько, и чтобы переводов было мало.

Что приходит

  • balansy — словарь «имя → баланс» из шага 2; плюс — переплатил, минус — должен, сумма — ноль

Что вернуть

Список троек (кто платит, кому, сколько): каждый раз самый большой должник переводит тому, кому должны больше всех, меньшее из двух; все в расчёте — [].

Допишите функцию kto_komu в редакторе справа. Результат верните через return — то, что напечатано, на проверку не влияет.

В проекте

Программа зовёт kto_komu на команду «готово» и печатает переводы стрелками. Решите шаг — и вместо балансов человек увидит, кому сколько перевести.

Пример

Иван переплатил 700, Пётр должен 500, Аня — 200. Самый большой должник — Пётр: он переводит Ивану 500. Дальше Аня — 200 Ивану. Ответ — [("Пётр", "Иван", 500), ("Аня", "Иван", 200)].

Тот же пример кодом
Перед вызовом
balansy = {"Иван": 700, "Пётр": -500, "Аня": -200}
Вызов
kto_komu(balansy)
Вернуть
[('Пётр', 'Иван', 500), ('Аня', 'Иван', 200)]
Ctrl+Enter — проверить

Обсуждение

Вопросов пока нет.

Войдите, чтобы спросить.