• محدودیت زمان: ۲ ثانیه
  • محدودیت حافظه: ۲۵۶ مگابایت

داده ساختار صف اولویت میانه شامل \(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
ارسال پاسخ برای این سؤال
فایلی انتخاب نشده است.