- محدودیت زمان: ۲ ثانیه
- محدودیت حافظه: ۲۵۶ مگابایت
داده ساختار صف اولویت میانه شامل $n$ عنصر مجزاست که اعمال زیر را میتوان روی آن انجام داد:
- درج یک عنصر و حذف میانه، در بدترین حالت در $O(log ,n)$
- ساخت یک صف اولویت میانه
MPQ
از $n$ عنصر در زمان $O(log ,n)$
ورودی
در خط اول عدد $k$ که نشاندهنده تعداد دستورهایی است که شما باید اجرا کنید میآید. در $k$ سطر بعد، $k$ دستور داده میشود که دستور $build$ لزوما در خط اول داده خواهد شد. دستورات ممکن به شرح زیر هستند:
- دستور $build(x_1,x_2,\cdots,x_m)$ : یک
MPQ
از اعداد $x_1$ تا $x_m$ در زمان $O(n)$ میسازد. (برای بدست آوردن میانه این اعداد میتوانید $O(n ,log, n)$ زمان هزینه کنید و این جزء مراحل ساختMPQ
به حساب نمیآید.) - دستور $insert(x)$ : عدد $x$ را در $O(log ,n)$ در
MPQ
درج میکند. - دستور $remove$ : میانه را در $O(log ,n)$ از
MPQ
حذف میکند.(اگر تعداد عناصر زوج باشد، عنصر $\frac{n}{2}$امین در لیست مرتب عناصر را میانه درنظر بگیرید)
$$1 \leq t \leq 10^5$$ $$10^{-9} \leq x_i \leq 10^9$$
خروجی
شما باید به تعداد دستورهای $remove$ در ورودی، عدد حاصل از فراخوانی این تابع را در خروجی چاپ کنید. فرض کنید تعداد خروجیهایی که یک برنامه چاپ میکند بیشتر از $5 \times 10^6$ نخواهد بود.
مثال
ورودی نمونه
6
build(1,2,3,4,5)
remove
remove
insert(7)
insert(9)
remove
خروجی نمونه
3
2
5
ارسال پاسخ برای این سؤال