Pis Treap
Treap, dekart ağacı olaraq da bilinən, ikili axtarış ağacında açar dəstini saxlayan bir məlumat strukturudur.
Hər bir ağacın zirvəsi cütü ilə təyin olunur.
Zirvələrin dəyərləri saxlanılan açarların dəyərləridir və "ikili axtarış ağacı" qaydasına uyğun gəlir: sol alt ağacın bütün dəyərləri kökdəki dəyərindən kiçik, sağ alt ağacın bütün dəyərləri isə kökdəki dəyərindən böyükdür.
Zirvələrin dəyərləri isə "yığın" qaydasına uyğun gəlir: zirvənin dəyəri valideynin dəyərindən kiçik və ya bərabərdir.
Hər yaradılan düyün üçün dəyəri adətən müəyyən bir paylanmaya uyğun olaraq təsadüfi seçilir ki, bu da bir çox əməliyyatların yaxşı orta vaxt mürəkkəbliyinə səbəb olur.
Bu məlumat strukturu ikili axtarış ağacı və yığının bəzi xüsusiyyətlərini birləşdirdiyi üçün onun adı "portmanteau" terminidir, iki sözün birləşməsindən ibarətdir: TRee + hEAP = TREAP.
Benjamin, dəyərinin seçilməsi prosedurundakı qeyri-müəyyənliyin pis olduğunu düşündü, çünki bu halda sorğuların icra müddəti fərqli olur. O, hər düyün üçün dəyərini onun dəyərinə əsasən müəyyənləşdirməyə qərar verdi. O, qaydasını seçdi. Benjamin xüsusilə sevinir ki, müxtəlif tam ədədlər həmişə müxtəlif verəcəkdir.
Barbara başa düşür ki, qeyri-müəyyən dekart ağacı "pis" təsadüfi ardıcıllıq verildikdə ən pis performansı göstərsə də, müəyyən dekart ağacı "pis" açar dəsti verildikdə ən pis performansı göstərir. O, bunu Benjamina izah etmək istəyir və ona tam ədəd açarları göstərmək istəyir ki, onlar onun məlumat strukturunda saxlanıldıqda, hündürlüyü olan ağac formalaşsın — mümkün olan ən "tarazsız" vəziyyət.
Barbaraya belə açarları təmin etməkdə kömək edin. Bu açarların hamısı - bitlik işarəli tipə uyğun olmalıdır.
Giriş verilənləri
Bir tam ədəd .
Çıxış verilənləri
Fərqli tam ədəd açarları ehtiva edən sıra çıxarın. Bütün açarlar və daxil olmaqla intervalda olmalıdır. qaydasına əsasən açarlarda qurulan dekart ağacı hündürlüyü olmalıdır.