Pages

Subscribe:

Rabu, 22 Agustus 2012

Modified Queue

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.

Format Masukan

Baris pertama berisi sebuah bilangan bulat N. N baris berikutnya masing-masing berisi sebuah perintah add 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 
 

So, the answer is :


 

0 komentar:

Posting Komentar