问题描述 |
---|
栈是一种线性数据结构,其中所有元素的插入和删除都在一端进行,这一端被称为栈的顶部。 现在给出两个初始为空的栈 A,B 和以下三种操作: 1️⃣ push c x :向栈 c 插入整数 x 。例如 push A 5 表示向栈 A 插入元素 5 2️⃣ pop c :删除栈 c 的顶部元素。例如 pop B 表示删除栈 B 的顶部元素 3️⃣ merge a b :把 a,b 两个栈的元素全部取出,按照它们各自入栈的先后顺序全部插入至栈 a 现在你要做的是,针对每次 pop 操作,输出被删除的元素值。 |
输入描述 |
第一行是一个正整数$$n$$表示操作的次数。 接下来$$n$$行,每行一个如描述中的三种操作之一。 |
输出描述 |
针对每个 pop 操作,在一行中输出被删除的元素值,如果栈为空,则输出 EMPTY。 |
样例输入复制样例 |
8 push A 1 push B 2 push A 3 pop A merge B A pop B pop B pop B |
样例输出 |
3 2 1 EMPTY |
提示说明 |
有$$40\%$$的数据,$$1 \le n \le 5000$$。 有$$40\%$$的数据,只有$$push$$和$$pop$$操作。 对于$$100\%$$的数据,$$1 \le n,x \le 10^5$$。 建议使用较快的输入输出方式。 |
相关 |