Skip to content

Latest commit

 

History

History

291.Интервалы_работы_складов

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
  1. Интервалы работы складов

У большого онлайн-магазина есть несколько складов. Не всякий товар можно хранить на любом из складов. Какие-то из складов не оборудованы холодильниками и не могут хранить замороженные продукты. Некоторые из складов небольшие, там некуда поставить крупногабаритный товар. Менеджеры заполняют таблицу, в которой указывают, когда, какие товары и на какой склад можно привозить, но делают это в удобном для себя формате.

Нужно преобразовать их записи в форму, которую сможет распознавать система распределения товаров. Формат ввода

На вход подается CSV-файл со следующими полями:

Идентификатор склада — целое неотрицательное число i (0≤i≤9);
Интервал дат работы — начало и конец интервала в формате YYYY-MM-DD, разделенные пробелом;
Тип товара — одно из строковых значений KGT, COLD, OTHER, NULL.

Если в поле "Тип товара" стоит NULL, то в указанный интервал дат склад принимает любые типы товаров.

Гарантируется, что конец интервала не превосходит начало интервала. Также гарантируется, что число записей в файле не превосходит 104. Формат вывода

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

Записи отсортированы по идентификатору склада, затем по типу товара (KGT < COLD < OTHER), затем по началу интервала;
Интервалы для одного склада и одного типа товара не пересекаются. Пересекающиеся интервалы нужно объединить в один;
В выходном файле нет записей с типом товара NULL. Каждая запись с типом товара NULL во входном файле должна интерпретироваться как три разных записи с типами KGT, COLD, OTHER.

Решение