Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

YADRO test task

Инструкции по запуску в Docker

Собрать образ:

sudo docker buildx build -t club .  

Запустить контейнер и указать обрабатываемый файл:

docker run -v /path/to/user/input.txt:/data/input.txt club

Описание

Прототип системы, которая следит за работой компьютерного клуба.

Входные данные

Входные данные представляют собой текстовый файл. Формат входных данных: Первая строка содержит количество столов в виде целого положительного числа. Во второй строке задается время начала и окончания работы компьютерного клуба, разделенные пробелом. В третьей строке задается стоимость часа в компьютерном клубе в виде целого положительного числа. Затем задается список входящих событий, разделенных переносом строки. Внутри строки в качестве разделителя между элементами используется один пробел.

  • Имена клиентов представляют собой комбинацию символов из алфавита a..z, 0..9, _, -
  • Время задается в 24-часовом формате с двоеточием в качестве разделителя XX:XX, незначащие нули обязательны при вводе и выводе (например 15:03 или 08:09).
  • Каждый стол имеет свой номер от 1 до N, где N – общее число столов, указанное в конфигурации.
  • Все события идут последовательно во времени. (время события N+1) ≥ (время события N).

Выходные данные

Если входные данные не удовлетворяют описанному формату, программа должна вывести в консоль первую строку, в которой найдена ошибка формата и завершиться. Если входные данные корректны, программа должна вывести следующий результат:

  • На первой строке выводится время начала работы.
  • Далее перечислены все события, произошедшие за рабочий день (входящие и исходящие), каждое на отдельной строке.
  • После списка событий на отдельной строке выводится время окончания работы.
  • Для каждого стола на отдельной строке выведены через пробел следующие параметры: Номер стола, Выручка за день и Время, которое он был занят в течение рабочего дня. После этого программа должна завершиться.

Подсчет выручки

За каждый час, проведённый за столом, клиент платит цену, указанную в конфигурации. При оплате время округляется до часа в большую сторону, поэтому, даже если клиент занимал стол всего несколько минут, он платит за целый час. Выручка – сумма, полученная ото всех клиентов за всё время работы компьютерного клуба.

События

Все события характеризуются временем и идентификатором события. Исходящие события — это события, создаваемые во время работы программы. События, относящиеся к категории «входящие», сгенерированы быть не могут, и выводятся в том же виде, в котором были поданы во входном файле.

About

Тестовое задание

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages