Antrean IGD
Layani pasien IGD berdasarkan tingkat kegawatan, bukan urutan datang.
Di instalasi gawat darurat, pasien tidak dilayani sesuai urutan datang. Pasien paling gawat diperiksa lebih dulu. Bila tingkat kegawatannya sama, yang datang lebih dulu didahulukan.
Masukan
Baris pertama berisi Q (1 sampai 20000). Q baris berikutnya berisi perintah:
DATANG nama tberarti pasiennamadatang dengan tingkat kegawatantdari 1 sampai 5, makin besar makin gawatPERIKSAberarti dokter siap memeriksa satu pasien
Keluaran
Untuk setiap PERIKSA, cetak nama pasien yang diperiksa, atau Tidak ada pasien bila ruang tunggu kosong.
Contoh masukan dan keluaran
Contoh 1
Masukan
6 DATANG Andi 2 DATANG Bela 5 DATANG Cahyo 2 PERIKSA PERIKSA PERIKSA
Keluaran
Bela Andi Cahyo
Petunjuk
Coba kerjakan dulu. Buka petunjuk satu per satu kalau kamu buntu.
Petunjuk 1
Mencari pasien paling gawat dengan menelusuri semua yang menunggu bisa terlalu lambat untuk 20000 perintah.
Petunjuk 2
Pakai heap (antrean prioritas). Di Python, heapq menyimpan nilai terkecil di puncak, jadi simpan (-tingkat, nomor_datang, nama) supaya yang paling gawat dan paling awal datang berada di puncak.