Prioritetlərə malik növbə
"Prioritetli növbə" strukturu yaradın ki, bu aşağıdakı əməliyyatları dəstəkləsin:
Elementin növbəyə əlavə edilməsi.
Növbədən ən yüksək prioritetə malik elementin silinməsi.
Növbədə olan istənilən elementin prioritetinin dəyişdirilməsi.
Giriş verilənləri
Proqram, hər sətirdə bir komanda olmaqla, komandalar ardıcıllığını giriş olaraq alır. Ümumi komanda sayı 30000-dən çox deyil. Komandalar aşağıdakı formatlardan birinə malik ola bilər:
ADD id priority - növbəyə id identifikatoru və priority prioriteti ilə yeni element əlavə edin. Növbədə belə bir identifikatorlu elementin olmadığına zəmanət verilir.
POP - növbədən ən yüksək prioritet dəyərinə malik elementi silin. Belə elementlərdən bir neçəsi varsa, onlardan biri (istənilən) silinir. Növbənin boş olmadığına zəmanət verilir.
CHANGE id new_priority - id identifikatorlu elementin prioritet dəyərini new_priority dəyərinə dəyişdirin. Növbədə belə bir identifikatorlu elementin olduğuna zəmanət verilir.
Elementlərin identifikatorları - kiçik latın hərflərindən ibarət və 10 simvoldan çox olmayan sətirlərdir. Prioritetlər - istənilən tam ədədlərdir.
Əvvəlcə növbə boşdur.
Çıxış verilənləri
Hər POP tipli komanda üçün silinmiş elementin identifikatorunu və onun prioritet dəyərini boşluqla ayıraraq çıxarın.