P4810 [COCI 2014/2015 #3] STOGOVI

题目描述

**译自 [COCI 2014/2015 Contest 3](http://www.hsin.hr/coci/archive/2014_2015/) T5「STOGOVI」** Mirko 正在玩栈。游戏开始时,他有一个编号为 $0$ 的空栈。在游戏中的第 $i$ 步,他会选择一个存在的编号为 $v$ 的栈,将它复制一份并进行以下其中一种操作: 1. 将数字 $i$ 加入新栈的顶部。 2. 将新栈顶部的数字删除。 3. 选择另外一个编号为 $w$ 的栈,并统计有多少个不同的数同时存在于新栈与栈 $w$ 中。 新创建的栈编号为 $i$。 Mirko 不喜欢自己用栈模拟这个过程,所以他想要你替他写一个程序来执行这个过程。对于每个删除操作输出删除的数,且对于每个统计操作,输出统计的结果。

输入格式

输出格式

说明/提示

#### 样例解释 1 开始时,我们有栈 $S_0 = \{\}$。 第一步,我们复制 $S_0$ 并将数字 $1$ 加入到顶部,$S_1 = \{1\}$。 第二步,我们复制 $S_1$ 并将数字 $2$ 加入到顶部,$S_2 = \{1,2\}$。 第三步,我们复制 $S_2$ 并删除数字,$2$,$S_3 = \{1\}$。 第四步,我们复制 $S_2$ 并编号为 $S_4$,统计有多少个不同的数同时存在于 $S_4$ 与 $S_3$ 中。唯一同时存在于两个栈中的数是 $1$,所以答案为 $1$。 第五步,我们复制 $S_4$ 并删除数字,$2$,$S_5 = \{1\}$。