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