Queue (antrian) adalah salah satu tipe data penting dalam dunia
pemrograman. Pak Dengklek meminta Anda untuk mensimulasikan N (1 ≤ N ≤
1.000) buah operasi terhadap sebuah queue yang terdiri dari bilangan
bulat.
Mula-mula, queue yang Anda miliki adalah kosong (tidak berisi apa-apa). Lalu Anda perlu membaca perintah yang diberikan satu persatu dan mengaplikasikannya pada queue tersebut. Dua perintah dasar yang mungkin diberikan terhadap queue adalah "add X Y" atau "del Y". Perintah "add X Y" (atau biasa disebut enqueue) berarti menambahkan Y buah bilangan bulat X pada ujung akhir queue. Sedangkan perintah "del Y" (atau biasa disebut dequeue) berarti menghapus Y buah bilangan bulat dari ujung awal queue. Coba perhatikan bagaimana tipe data ini menyerupai antrian.
Yang unik dari queue Anda kali ini adalah bahwa ada sebuah perintah tambahan "rev" yang berarti Anda perlu membalikan queue sehingga bilangan yang tadinya ada di akhir menjadi ada di awal dan sebaliknya.
Untuk menguji kebenaran dari operasi queue Anda, Anda perlu mencetak beberapa hal seperti berikut. Setiap kali melakukan perintah "del Y", Anda perlu mencetak satu bilangan bulat pertama yang Anda keluarkan. Setiap kali melakukan perintah "add X Y", Anda perlu mencetak banyaknya bilangan bulat yang ada dalam queue.
Mula-mula, queue yang Anda miliki adalah kosong (tidak berisi apa-apa). Lalu Anda perlu membaca perintah yang diberikan satu persatu dan mengaplikasikannya pada queue tersebut. Dua perintah dasar yang mungkin diberikan terhadap queue adalah "add X Y" atau "del Y". Perintah "add X Y" (atau biasa disebut enqueue) berarti menambahkan Y buah bilangan bulat X pada ujung akhir queue. Sedangkan perintah "del Y" (atau biasa disebut dequeue) berarti menghapus Y buah bilangan bulat dari ujung awal queue. Coba perhatikan bagaimana tipe data ini menyerupai antrian.
Yang unik dari queue Anda kali ini adalah bahwa ada sebuah perintah tambahan "rev" yang berarti Anda perlu membalikan queue sehingga bilangan yang tadinya ada di akhir menjadi ada di awal dan sebaliknya.
Untuk menguji kebenaran dari operasi queue Anda, Anda perlu mencetak beberapa hal seperti berikut. Setiap kali melakukan perintah "del Y", Anda perlu mencetak satu bilangan bulat pertama yang Anda keluarkan. Setiap kali melakukan perintah "add X Y", Anda perlu mencetak banyaknya bilangan bulat yang ada dalam queue.
Format Masukan
Baris pertama berisi sebuah bilangan bulat N. N baris berikutnya masing-masing berisi sebuah perintahadd X Y
, del Y
, atau rev
sesuai penjelasan di atas. Nilai X dan Y berada di antara 1 sampai 10.000.Format Keluaran
Beberapa baris, sesuai dengan banyaknya perintah "add X Y" dan "del Y" yang diberikan pada masukan. Masing-masing baris berisi sebuah bilangan bulat sesuai penjelasan di atas.Contoh Masukan
6 add 1 1 add 2 2 add 3 3 del 2 rev del 2
Contoh Keluaran
1 3 6 1 3
Penjelasan
Berikut ini adalah visualisasi dari contoh di atas:awal : [] add 1 1 : [1] -> cetak 1 add 2 2 : [1 2 2] -> cetak 3 add 3 3 : [1 2 2 3 3 3] -> cetak 6 del 2 : [2 3 3 3] -> cetak 1 rev : [3 3 3 2] del 2 : [3 2] -> cetak 3
0 komentar:
Posting Komentar