Война бесконечности (декабрь 2018): D. Прибытие Таноса

Ограничение по времени: 2.000 секунд

Ограничение по памяти: 100.000 мегабайт

Когда Халк прибыл на Землю, он сообщил Доктору Стрэнджу время прибытия на землю Таноса. Однако, Доктор не уверен, что после такого падения Халк правильно запомнил эту дату. Однако он уверен, что набор цифр, который сказал Халк, точно верный. Теперь ему нужно понять, в какие даты может прибыть Танос.

Помогите ему. По дате, которую сообщил Халк, посчитайте все возможные корректные даты, которые можно получить из нее перестановкой цифр. Дата называется корректной, если ee год положительный, месяц не больше 12, а номер дня не больше количества дней в этом месяце. В високосном году в феврале на один день больше — 29 дней вместо 28. Год называется високосным, если его номер делится на 400, или если его номер делится на 4, но не делится на 100.

Формат входных данных

В первой строке входных данных задана дата в формате ГГГГ ММ ДД. Гарантируется, что это корректная дата с учeтом високосных годов.

Формат выходных данных

В первой строке выведите количество дат, которые можно получить перестановкой цифр из исходный даты. Далее, по одной в строке, выведите сами эти даты в таком же формате, в порядке от самой ранней до самой поздней.

Пример

input output
0001 01 01 16
0001 01 01
0001 01 10
0001 10 01
0001 10 10
0010 01 01
0010 01 10
0010 10 01
0010 10 10
0100 01 01
0100 01 10
0100 10 01
0100 10 10
1000 01 01
1000 01 10
1000 10 01
1000 10 10
Войдите, что бы отправлять решения