소개
힐버트 그랜드 호텔에 대해 들어 본 적이있을 것 입니다. 그곳의 관리자는 손님이 머무르는 곳의 목록을 잃어 버렸지 만 여전히 체크인 순서가 있습니다. 각 손님은 자신의 가치보다 낮은 방 번호를 가진 방에 머물 수 없으며 손님이 더 낮은 곳에 추가되면 방, 더 높은 방에있는 모든 손님과 그들 사이에 빈 공간이 없으면 한 방 위로 이동합니다. 각 손님이 머무는 곳을 찾도록 도와 줄 수 있습니까?
요구 사항
순서대로 자연수 목록을 입력으로 받아 색인에 배치하는 프로그램을 작성하십시오. 해당 색인에 값이 이미 있으면 목록의 다음 항목으로 이동합니다. 이 프로세스는 첫 번째 비어있는 (0 또는 정의되지 않은) 공간이 발견 될 때까지 반복됩니다. 현재 최고 색인과 새로운 입력 사이에 정의되지 않은 공백은 0을 추가하여 채워집니다. 이것이 힐버트의 그랜드 호텔이므로 현재 가장 높은 점유 지수보다 높은 객실은 존재하지 않습니다.
입력과 출력
입력은 순서가 지정된 자연수 목록입니다 (허용되는 모든 형식의 입력을 통해 읽을 수 있음) 입력의
각 숫자는 호텔에 도착한 한 명의 손님으로 간주되며 도착 순서대로 표시됩니다
출력은 손님의 최종 배열입니다 (숫자).
예
입력 : 1 3 1
출력 : 1 1 3
단계별 :
1
인덱스 1에 방을 만들고 그 안에 1을 넣습니다
1 0 3
인덱스 3까지 방을 만들고 3을 방 3 에 놓습니다
1 1 3
방 1의 내용을 위로 이동 방 1과 장소 1입력 : 1 4 3 1 2 1
출력 : 1 개 1 2 1 2 3 4
단계별 :
1
그것에 인덱스 1 장소 1의 방을 만들고
1 0 0 4
방 인덱스 4 곳 4 방까지 만들기 4
1 0 3 4
방 3에 장소 3
1 1 3 4
방 1의 내용을 한 방 위로 옮기고 방 1을 방에 1
1 2 1 3 4
방의 내용을 2에서 4 위로 한 방 위로 옮기고 2를 방에 2
1 1 2 1 3 4
방 1 ~ 5의 내용을 한 방 위로 옮기고 1을 방 1에 놓으십시오.입력 : 10
출력 : 0000 0000 10
단계적으로 :
0000 10 10 10 10
실까지 방을 생성하고 10 호실에 10을 배치하십시오참고 :
인덱스가 0 인 작업은 괜찮으며이 경우 출력 앞에 0을 삽입 할 수 있습니다.
표준 허점 은 금지 된 가장 짧은 코드 (바이트)입니다.