U281788 栈
题目描述
维护一个栈结构,需要支持以下三种操作:
1. `push x`:元素 $x$ 入栈;
1. `pop`:栈顶元素出栈;
1. `median`:查询栈中所有元素的中位数。
假设栈中有 $N$ 个元素,其中位数的定义为:第 $\lfloor \frac {N + 1}2 \rfloor$ 小的元素。如:对于栈 `9, 23, 35, 12`,其中位数为 $12$,对于栈 `9, 23, 35, 12, 44`,其中位数为 $23$
输入格式
第一行一个整数 $n~(n \le 10 ^5)$,表示操作的个数
接下来 $n$ 行,每行一个操作。对于 `push` 操作,其后会跟一个数字 $x~(x \le 10^5)$,表示入栈的元素值
保证操作都是合法的,即 `pop` 操作和 `median` 操作时,栈非空
输出格式
每个输出占一行
对于每个 `median` 操作,输出此时的中位数元素的值