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` 操作,输出此时的中位数元素的值