Giới thiệu
Một số bạn có thể đã nghe nói về Hilbert's Grand Hotel . Người quản lý ở đó đã mất danh sách nơi khách đang ở nhưng anh ta vẫn có thứ tự họ đã đăng ký. Mỗi khách không thể ở trong phòng có số phòng nhỏ hơn giá trị của họ và nếu khách được thêm vào thấp hơn phòng, tất cả khách ở phòng cao hơn không có khoảng trống giữa họ và khách mới được chuyển lên một phòng. Bạn có thể giúp anh ta tìm nơi mỗi khách đang ở?
Yêu cầu
Viết chương trình nhận danh sách các số tự nhiên theo thứ tự làm đầu vào và đặt chúng vào chỉ mục của chúng. Nếu đã có một giá trị trong chỉ mục đó, nó sẽ được chuyển sang mục tiếp theo trong danh sách. Quá trình này lặp lại cho đến khi không gian trống đầu tiên (0 hoặc không xác định) được tìm thấy. Bất kỳ khoảng trắng không xác định nào giữa chỉ mục cao nhất hiện tại và bất kỳ đầu vào mới nào cũng sẽ được lấp đầy bằng cách thêm 0s. Vì đây là Grand Hotel của Hilbert, các phòng cao hơn chỉ số chiếm cao nhất hiện tại không tồn tại.
Đầu vào và đầu ra
Đầu vào sẽ là một danh sách các số tự nhiên được sắp xếp (được phép đọc qua bất kỳ hình thức nhập nào được chấp nhận)
Mỗi số trong đầu vào được coi là một khách đến khách sạn và theo thứ tự đến
Đầu ra sẽ là sự sắp xếp cuối cùng của khách (số)
Ví dụ
Đầu vào: 1 3 1
Đầu ra: 1 1 3
Từng bước:
1
Tạo phòng ở chỉ số 1 và đặt 1 trong đó
1 0 3
Tạo phòng theo chỉ số 3 và đặt 3 trong phòng 3
1 1 3
Chuyển nội dung của phòng 1 lên một phòng và đặt 1 trong phòng 1Đầu vào: 1 4 3 1 2 1
Đầu ra : 1 1 2 1 3 4
Từng bước:
1
Tạo phòng ở chỉ số 1 và đặt 1 trong đó
1 0 0 4
Tạo phòng theo chỉ số 4 và đặt 4 trong phòng 4
1 0 3 4
Đặt 3 trong phòng 3
1 1 3 4
Nội dung ca của phòng 1 lên một phòng và đặt 1 trong phòng 1
1 2 1 3 4
Nội dung thay đổi của phòng 2 đến 4 lên một phòng và đặt 2 trong phòng 2
1 1 2 1 3 4
Nội dung thay đổi của phòng 1 đến 5 lên một phòng và đặt 1 trong phòng 1Đầu vào: 10
Kết quả: 0 0 0 0 0 0 0 0 0 0 10
Từng bước:
0 0 0 0 0 0 0 0 0 10
Tạo phòng lên đến phòng 10 và đặt 10 trong phòng 10Lưu ý:
Làm việc với 0 được lập chỉ mục là tốt và bạn có thể chèn 0 ở phía trước đầu ra trong trường hợp đó
Các lỗ hổng tiêu chuẩn bị cấm, mã ngắn nhất tính bằng byte thắng