Introdução
Alguns de vocês já devem ter ouvido falar do Hilbert's Grand Hotel . O gerente perdeu sua lista de onde os hóspedes estão hospedados, mas ainda tem a ordem em que fizeram o check-in. Cada hóspede não pode ficar em um quarto com um número de quarto menor que o valor e se um convidado for adicionado a um valor menor. quarto, todos os hóspedes em quartos superiores, sem espaço vazio entre eles e o novo hóspede, mudam para um quarto. Você pode ajudá-lo a encontrar onde cada um dos convidados está hospedado?
Exigências
Escreva um programa que receba uma lista ordenada de números naturais como entrada e os coloque em seu índice. Se já houver um valor nesse índice, ele será deslocado para a próxima entrada na lista. Esse processo se repete até que o primeiro espaço vazio (0 ou indefinido) seja encontrado. Quaisquer espaços indefinidos entre o índice mais alto atual e qualquer nova entrada serão preenchidos adicionando 0s. Como este é o Grand Hotel de Hilbert, não existem quartos maiores que o atual índice ocupado mais alto.
Entrada e saída
A entrada será uma lista ordenada de números naturais (permitida a leitura através de qualquer forma de entrada aceita).
Cada número na entrada é considerado um hóspede que chega ao hotel e está em ordem de chegada.
A saída será o arranjo final dos convidados (números)
Exemplos
Entrada: 1 3 1
Saída: 1 1 3
Passo a passo:
1
Crie uma sala no índice 1 e coloque 1 nela
1 0 3
Crie salas até o índice 3 e coloque 3 na sala 3
1 1 3
Desloque o conteúdo da sala 1 para cima um quarto e coloque 1 no quarto 1Entrada: 1 4 3 1 2 1
Saída : 1 1 2 1 3 4
Passo a passo:
1
Crie uma sala no índice 1 e coloque 1 nela
1 0 0 4
Crie salas até o índice 4 e coloque 4 na sala 4
1 0 3 4
Coloque 3 na sala 3
1 1 3 4
Desloque o conteúdo da sala 1 para cima um quarto e coloque 1 na sala 1
1 2 1 3 4
Desloque o conteúdo das salas 2 para 4 para cima um quarto e coloque 2 na sala 2
1 1 2 1 3 4
Desloque o conteúdo dos quartos 1 para 5 em um quarto e coloque 1 no quarto 1Entrada: 10
Saída: 0 0 0 0 0 0 0 0 0 0 10
Passo a passo:
0 0 0 0 0 0 0 0 0 10 10
Crie salas até a sala 10 e coloque 10 na sala 10Notas:
Trabalhar com 0 indexado é bom e, nesse caso, você pode inserir um 0 na frente da saída
As brechas padrão são proibidas, o código mais curto em bytes ganha