Inverter a lista ligada em blocos

Dada uma lista ligada, é pedido que se inverta blocos de comprimento l na lista, desde o início até ao final, até não restarem mais blocos para reverter.

Entrada

Os dados iniciais para a lista ligada são obtidos automaticamente. Não é necessário fazer nada.
A seguir, é fornecido um único inteiro l (1 ≤ l ≤ |L|), que representa o tamanho dos blocos.

Saída

O programa deve imprimir a lista ligada final.

Exemplos

Entrada
Saída
10 4 0 -2 3 5 7 -1 8 -9 3 5
5 3 -2 0 4 3 -9 8 -1 7
10 4 0 -2 3 5 7 -1 8 -9 3 2
0 4 3 -2 7 5 8 -1 3 -9
10 4 0 -2 3 5 7 -1 8 -9 3 1
4 0 -2 3 5 7 -1 8 -9 3
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue