# Описание задачи Напишите программу для простейшего матчинга заявок на упрощенной бирже. На бирже торгуется четыре ценных бумаги ("A", "B", "C" и "D"). Базовая валюта биржи - доллар ("$"). Входные данные для программы содержатся в двух файлах. Первый файл `clients.txt` содержит список клиентов биржи с указанием их исходных балансов по торгующимся ценным бумагам и доллару. Второй файл, `orders.txt`, это список заявок от клиентов в хронологическом порядке. Результатом работы программы является файл `result.txt` аналогичный по структуре файлу `clients.txt` и содержащий состояние балансов всех клиетов после обработки всех заявок. ## Описание форматов файлов Структура файлов предельно проста. Каждая строка тесктового файла содержит одну запись. Поля записи отделяются друг от друга с помощью символа табуляции (\t). Имена клиентов, названия ценных бумаг - строки, состоящие из буквенных и цифровых символов ASCII без разделителей. Числовые значения представлены целыми числами. ### Файл `clients.txt` Файл списка клиетов имеет следующие поля: * Имя клиента * Баланс клиента по долларам * Баланс клиента по ценной бумаге "A" в штуках * Баланс по ценной бумаге "B" * Баланс по ценной бумаге "C" * Баланс по ценной бумаге "D" Пример нескольких строк файла: ``` C1 1000 10 5 15 0 C2 2000 3 35 40 10 ``` ### Файл `orders.txt` Файл списка заявок имеет формат: * Имя клиента выставившего заявку * Символ операции: "s" - продажа или "b" - покупка. * Наименование ценной бумаги * Цена заявки (целое число за одну штуку ценной бумаги) * Количество продаваемых или покупаемых ценных бумаг Пример нескольких строк файла: ``` C1 b A 7 12 C2 s A 8 10 ``` ## Замечания 1. Частичное сопоставление заявок реализовывать не обязательно. Для упрощения можно сопоставлять заявки только по полному совпадению цены и количества. 1. Не нужно обрабатывать ситуации продажи и покупки самому себе. 1. Состояние счетов клиентов можно обрабатывать без транзакций. 1. Для простоты можно не проверять отрицательные балансы клиентов по ценным бумагам и долларам. ## Ожидаемые результаты * Основной результат - файл конечного состояния счетов клиентов биржи после обработки предоставленных данных * Исходный код проекта на Github * Набор unit-тестов