En su xkcd sobre el formato de fecha estándar ISO 8601, Randall se coló en una notación alternativa bastante curiosa:
Los números grandes son todos los dígitos que aparecen en la fecha actual en su orden habitual, y los números pequeños son índices basados en 1 de las ocurrencias de ese dígito. Entonces el ejemplo anterior representa 2013-02-27.
Definamos una representación ASCII para tal fecha. La primera línea contiene los índices 1 a 4. La segunda línea contiene los dígitos "grandes". La tercera línea contiene los índices del 5 al 8. Si hay varios índices en una sola ranura, se enumeran uno al lado del otro de menor a mayor. Si hay como máximo míndices en una sola ranura (es decir, en el mismo dígito y en la misma fila), entonces cada columna debe tener m+1caracteres anchos y alineados a la izquierda:
2 3 1 4
0 1 2 3 7
5 67 8
Vea también el desafío complementario para la conversión opuesta.
El reto
Dada una fecha en notación xkcd, envíe la fecha ISO 8601 correspondiente ( YYYY-MM-DD).
Puede escribir un programa o función, tomando la entrada a través de STDIN (o la alternativa más cercana), argumento de línea de comando o argumento de función y generando el resultado a través de STDOUT (o la alternativa más cercana), el valor de retorno de la función o el parámetro de función (out).
Puede suponer que la entrada es cualquier fecha válida entre años 0000e 9999inclusive.
No habrá espacios iniciales en la entrada, pero puede suponer que las líneas se rellenan con espacios en un rectángulo, que contiene como máximo una columna de espacios final.
Aplican reglas estándar de código de golf .
Casos de prueba
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
1está arriba 2, entonces el primer dígito es 2. 2está arriba 0, entonces el segundo dígito es 0. 3está arriba 1, 4está arriba 3, así que obtenemos 2013los primeros cuatro dígitos. Ahora 5está abajo 0, entonces el quinto dígito está 0, 6y 7ambos están abajo 2, entonces ambos dígitos están 2. Y finalmente, 8está abajo 7, así que el último dígito es 8, y terminamos con 2013-02-27. (Los guiones están implícitos en la notación xkcd porque sabemos en qué posiciones aparecen).
