У своєму xkcd про стандартний формат дати ISO 8601 Рандалл прокрався у досить цікавій альтернативній нотації:
Великі числа - це всі цифри, які відображаються в поточній даті у звичайному порядку, а невеликі числа - це індекси, що базуються на 1, про виникнення цієї цифри. Отже, наведений вище приклад являє собою 2013-02-27
.
Давайте визначимо представлення ASCII для такої дати. Перший рядок містить показники 1 - 4. Другий рядок містить "великі" цифри. Третій рядок містить індекси від 5 до 8. Якщо в одному слоті є кілька індексів, вони перераховуються один біля одного від найменшого до найбільшого. Якщо m
в одному слоті є максимум індексів (тобто на одній цифрі та в тому ж рядку), то кожен стовпець повинен містити m+1
символи в ширину та вирівнювати ліворуч:
2 3 1 4
0 1 2 3 7
5 67 8
Дивіться також супровід виклику для протилежного перетворення.
Змагання
Враховуючи дату ISO 8601 ( YYYY-MM-DD
), виведіть відповідне позначення дати xkcd.
Ви можете написати програму або функцію, взявши введення через STDIN (або найближчу альтернативу), аргумент командного рядка або аргумент функції та вивівши результат через STDOUT (або найближчу альтернативу), значення повернення функції або параметр функції (out).
Будь-який рік від 0000
до 9999
є дійсним вкладом.
Додаткові пробіли дозволені, провідні місця - ні. Ви можете необов'язково виводити один зворотний рядок.
Діють стандартні правила гольф-коду .
Випробування
2013-02-27
2 3 1 4
0 1 2 3 7
5 67 8
2015-12-24
2 3 1 4
0 1 2 4 5
5 67 8
2222-11-11
1234
1 2
5678
1878-02-08
1 3 24
0 1 2 7 8
57 6 8
2061-02-22
2 4 1 3
0 1 2 6
5 678
3564-10-28
1 4 2 3
0 1 2 3 4 5 6 8
6 5 7 8
1111-11-11
1234
1
5678
0123-12-30
1 2 3 4
0 1 2 3
8 5 6 7