Escriba un programa que tome una cadena donde cada línea consiste en el carácter 0
sangrado por un número de espacios. La línea superior no tiene sangría y todas las demás líneas se sangrarán como máximo un espacio más que la línea justo antes.
Ninguna línea tendrá espacios finales, pero puede suponer opcionalmente que hay una nueva línea final.
Por ejemplo, la entrada podría verse así:
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Su tarea es numerarlo como un esquema jerárquico , utilizando números enteros positivos crecientes como encabezados de línea. Esta sería la salida para el ejemplo:
1
1
1
2
2
2
1
2
3
1
3
1
1
2
Observe cómo cada nivel de sangría jerárquica tiene su propio conjunto de números crecientes, incluso si solo suben a uno.
En la salida, no debe haber espacios finales, pero opcionalmente puede haber una nueva línea final.
Escriba un programa completo que tome la cadena de entrada a través de stdin o línea de comando, o escriba una función que tome la cadena como argumento. Imprima el resultado o devuélvalo como una cadena.
El código más corto en bytes gana.
Ejemplos
Si se ingresa la cadena vacía, la cadena vacía debe salir.
El siguiente ejemplo más trivial es la entrada
0
que debería convertirse
1
Ejemplo grande - Entrada:
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Salida:
1
1
1
2
1
3
1
2
1
2
1
1
2
3
4
2
3
1
2
3
2
1
1
2
1
2
3
4
5
6
7
8
9
10
11
1
1
1
12
1
3
4
5
1
1
1
1
1
1
2
2
2
2
2
2
1
2
1
2
6
7
S=[]\nfor w in input()[:-1].split('0\n'):S=([0]+S)[~len(w):];S[0]+=1;print w+`S[0]`