Платежи между кошельками

Так можно смоделировать простую систему переводов: деньги списываются у отправителя и добавляются получателю. Дан словарь balances с балансами пользователей и список transfers, где каждый перевод задан как from, to, amount. Применяй переводы по порядку: если у отправителя хватает средств, выполни перевод, иначе пропусти его. Верни итоговый словарь балансов.

Примеры

Ввод
{"a": 100, "b": 0}, [["a", "b", 30]]
Вывод
{"a": 70, "b": 30}
Ввод
{"a": 10, "b": 0}, [["a", "b", 50]]
Вывод
{"a": 10, "b": 0}
Ввод
{"a": 100, "b": 0, "c": 0}, [["a", "b", 40], ["b", "c", 40], ["a", "c", 60]]
Вывод
{"a": 0, "b": 0, "c": 100}

Нужно реализовать

def apply_transfers(balances: dict, transfers: list) -> dict:

Теги

dicthashmap
PostgreSQLv16

Здесь будет результат выполнения кода

Видимые тесты
1
Ввод
{"a":100,"b":0}, [["a","b",30]]
Ожидаемый{"a":70,"b":30}
2
Ввод
{"a":10,"b":0}, [["a","b",50]]
Ожидаемый{"a":10,"b":0}
3
Ввод
{"a":100,"b":0,"c":0}, [["a","b",40],["b","c",40],["a","c",60]]
Ожидаемый{"a":0,"b":0,"c":100}
4
Ввод
{"a":50,"b":50}, [["a","b",50],["b","a",100]]
Ожидаемый{"a":100,"b":0}
5
Ввод
{"a":5}, [["a","z",1]]
Ожидаемый{"a":5}
6
Ввод
{"a":100,"b":0,"c":0}, [["a","b",40]]
Ожидаемый{"a":60,"b":40,"c":0}
Фокус-радио
На паузе · SomaFM · Fluid