#P1988. Cube Stacking
Cube Stacking
描述
Farmer John 和 Betsy 正在玩一个游戏,游戏中有 N(1 ≤ N ≤ 30,000)个相同的立方体,编号从 1 到 N。游戏开始时,有 N 堆立方体,每堆只有一个立方体。Farmer John 要求 Betsy 执行 P(1 ≤ P ≤ 100,000)次操作。操作分为两种类型:移动操作和计数操作。
- 移动操作:Farmer John 要求 Betsy 将包含立方体 X 的堆移动到包含立方体 Y 的堆的顶部。
- 计数操作:Farmer John 要求 Betsie 统计在包含立方体 X 的堆中,位于立方体 X 下方的立方体数量,并报告该值。
编写一个程序来验证游戏的结果。
输入
- 第 1 行:一个整数 P,表示操作的数量。
- 第 2 到 P+1 行:每行描述一个合法的操作。第 2 行描述第一个操作,依此类推。每行以 'M' 开头表示移动操作,或以 'C' 开头表示计数操作。对于移动操作,该行还包含两个整数 X 和 Y。对于计数操作,该行还包含一个整数 X。
注意:输入文件中不会出现 N 的值。移动操作不会要求将一个堆移动到自身上。
输出
按输入文件的顺序输出每个计数操作的结果。
输入示例 1
6
M 1 6
C 1
M 2 4
M 2 6
C 3
C 4
输出示例 1
1
0
2
来源
USACO 2004 US公开赛