pengantar
Beberapa dari Anda mungkin pernah mendengar tentang Hilbert's Grand Hotel . Manajer di sana telah kehilangan daftar di mana para tamu menginap tetapi dia masih memiliki urutan di mana mereka check in. Setiap tamu tidak dapat tinggal di kamar dengan nomor kamar kurang dari nilai mereka dan jika tamu ditambahkan ke yang lebih rendah kamar, semua tamu di kamar yang lebih tinggi tanpa ruang kosong antara mereka dan tamu baru digeser ke atas satu kamar. Bisakah Anda membantunya menemukan di mana masing-masing tamu menginap?
Persyaratan
Tulis program yang menerima daftar nomor alami sebagai input dan letakkan di indeks mereka. Jika sudah ada nilai dalam indeks itu, itu bergeser ke entri berikutnya dalam daftar. Proses ini berulang sampai ruang kosong pertama (0 atau tidak ditentukan) ditemukan. Setiap ruang yang tidak terdefinisi antara indeks tertinggi saat ini dan setiap input baru akan diisi dengan menambahkan 0s. Karena ini adalah Grand Hotel Hilbert, kamar yang lebih tinggi dari indeks tertinggi saat ini tidak ada.
Masukan dan keluaran
Input akan menjadi daftar nomor alami yang diurutkan (diizinkan untuk dibaca melalui setiap bentuk input yang diterima).
Setiap nomor dalam input dianggap sebagai satu tamu yang tiba di hotel dan dalam urutan kedatangan
Output akan menjadi pengaturan terakhir tamu (angka)
Contohnya
Input: 1 3 1
Output: 1 1 3
Langkah demi langkah:
1
Buat kamar di indeks 1 dan tempat 1 di dalamnya
1 0 3
Buat kamar hingga indeks 3 dan tempat 3 di kamar 3
1 1 3
Geser isi kamar 1 ke atas satu kamar dan tempat 1 di kamar 1Input: 1 4 3 1 2 1
Output : 1 1 2 1 3 4
Langkah demi langkah:
1
Buat kamar di indeks 1 dan tempat 1 di dalamnya
1 0 0 4
Buat kamar hingga indeks 4 dan tempat 4 di kamar 4
1 0 3 4
Tempat 3 di kamar 3
1 1 3 4
Menggeser isi kamar 1 ke atas satu kamar dan tempat 1 di kamar 1
1 2 1 3 4
Menggeser isi kamar 2 ke 4 ke atas satu kamar dan menempatkan 2 di kamar 2
1 1 2 1 3 4
Geser isi kamar 1 ke 5 ke atas satu kamar dan letakkan 1 di kamar 1Input: 10
Output: 0 0 0 0 0 0 0 0 0 0 10
Langkah demi langkah:
0 0 0 0 0 0 0 0 0 10
Buat kamar hingga kamar 10 dan tempat 10 di kamar 10Catatan:
Bekerja dengan 0 diindeks baik-baik saja dan Anda dapat memasukkan 0 di depan output dalam kasus itu
Celah standar dilarang, kode terpendek dalam byte menang