introduction
Certains d'entre vous ont peut-être entendu parler du Hilbert's Grand Hotel . Le responsable a perdu sa liste des lieux de séjour des invités mais il a toujours l'ordre dans lequel ils se sont enregistrés. chambre, tous les invités dans les chambres supérieures sans espace vide entre eux et le nouvel invité sont déplacés d'une chambre. Pouvez-vous l'aider à trouver où logent chacun des invités?
Exigences
Écrivez un programme qui reçoit une liste ordonnée de nombres naturels en entrée et les place à leur index. S'il existe déjà une valeur dans cet index, elle est déplacée vers le haut jusqu'à l'entrée suivante dans la liste. Ce processus se répète jusqu'à ce que le premier espace vide (0 ou non défini) soit trouvé. Tout espace non défini entre l'index le plus élevé actuel et toute nouvelle entrée sera rempli en ajoutant des 0. Comme il s'agit du Hilbert's Grand Hotel, les chambres supérieures à l'indice d'occupation actuel le plus élevé n'existent pas.
Entrée et sortie
L'entrée sera une liste ordonnée de nombres naturels (autorisés à être lus à travers toute forme acceptée d'entrée)
Chaque numéro dans l'entrée est considéré comme un invité arrivant à l'hôtel et est dans l'ordre d'arrivée
La sortie sera l'arrangement final des invités (nombres)
Exemples
Entrée: 1 3 1
Sortie: 1 1 3
Étape par étape:
1
Créez une pièce à l'index 1 et placez-y 1
1 3
Créez des pièces jusqu'à l'index 3 et placez 3 dans la pièce 3
1 1 3
Déplacez le contenu de la pièce 1 vers le haut une pièce et place 1 dans la pièce 1Entrée: 1 4 3 1 2 1
Sortie : 1 1 2 1 3 4
Étape par étape:
1
Créez une pièce à l'index 1 et placez-y 1
1 0 0 4
Créez des pièces jusqu'à l'index 4 et placez 4 dans la pièce 4
1 0 3 4
Placez 3 dans la pièce 3
1 1 3 4
Déplacez le contenu de la pièce 1 vers le haut d'une pièce et placez 1 dans la pièce 1
1 2 1 3 4
Déplacez le contenu des pièces 2 à 4 vers le haut d'une pièce et placez 2 dans la pièce 2
1 1 2 1 3 4
Décaler le contenu des pièces 1 à 5 d'une pièce et placer 1 dans la pièce 1Entrée: 10
Sortie: 0 0 0 0 0 0 0 0 0 0 10 10
Pas à pas:
0 0 0 0 0 0 0 0 0 10
Créez des pièces jusqu'à la pièce 10 et placez 10 dans la pièce 10Remarques:
travailler avec 0 indexé est très bien et vous pouvez insérer un 0 à l'avant de la sortie dans ce cas
Les failles standard sont interdites, le code le plus court en octets gagne