Вступ
Ви влаштувались на посаду міністра фінансів у вашій складеній країні на задньому подвір’ї. Ви вирішили створити власний банк у своїй країні для вас та ваших менш надійних друзів. Оскільки ви не довіряєте своїм друзям, ви вирішили написати програму для підтвердження всіх транзакцій, щоб уникнути перевитрати вашими друзями витраченої валюти та зруйнування економіки.
Завдання
Враховуючи стартовий баланс та всі транзакції, відфільтруйте всі транзакції, коли хтось намагається перевитратити та заблокувати тих, хто намагається перевитратити гроші (це включає спроби перевитрати коштів на закритий рахунок), щоб ніколи не користувався вашим банком знову, фільтруючи майбутні транзакції на його або з його / її банківський рахунок.
Введення-виведення
Два списки Aі Bяк вхід, і список Cяк вихід. A- початковий баланс кожного рахунку з форматом [["Alice", 5], ["Bob", 8], ["Charlie", 2], ...]. Bце перелік транзакцій у форматі, [["Bob", "Alice", 3], ["Charlie", "Bob", 5], ...]де ["Bob", "Alice", 3]означає, що Боб хоче сплатити Алісі 3 валютні одиниці. Cповинен мати той самий формат, що і B. A, Bі Cможе бути в будь-якому розумному форматі.
Випробування
A: [["Alice", 5], ["Bob", 2]]
B: [["Alice", "Bob", 5], ["Bob", "Alice" 7]]
C: [["Alice", "Bob", 5], ["Bob", "Alice" 7]]
A: [["A", 2], ["B", 3], ["C", 5]]
B: [["C", "A", 2], ["B", "C", 4], ["A", "B", 2]]
C: [["C", "A", 2]]
A: [["A", 2], ["B", 3]]
B: [["A", "B", 2], ["A", "B", 2]]
C: [["A", "B", 2]]
A: [["A", 4], ["B", 0]]
B: [["A", "B", 1], ["A", "B", 5], ["A", "B", 2]]
C: [["A", "B", 1]]
A: [["A", 2], ["B", 3], ["C", 4]]
B: [["A", "B", 3], ["C", "B", 4]]
C: [["C", "B", 4]]
A: [["A", 2], ["B", 3], ["C", 4]]
B: [["A", "B", 3], ["B", "A", 4], ["C", "B" 2]]
C: []
Оцінка балів
Це код-гольф , виграє найкоротший код у байтах на кожній мові.
["A", 2, "B", 3, "C", 5]?
A: [["A", 2], ["B", 3], ["C", 4]], B: [["A", "B", 3], ["C", "B", 4]], C: [["C", "B", 4]](дійсна угода після неприпустимою один).
Aтакож бути словник чи список кортежів?