叠积木
题号:NC235622
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

牛可乐得到了编号从 1n 块不同的积木,初始时每块积木单独为一列,牛可乐会对这些积木进行 q 次操作。操作分为两种:
- 牛可乐选择两个整数 x,y,将编号为 x 的积木所在的列放到编号为 y 的积木所在列的正上方。
- 牛可乐选择一个整数 x,并询问你编号为 x 的积木下方有多少块积木。

请你对每次询问操作输出正确答案。

输入描述:

第一行包含一个整数 ,代表牛可乐的操作次数。

之后 q 行,每行代表一次操作,两种操作会以下形式给出:

- M x y ,代表移动操作,数据保证编号为 x,y 的两块积木不会位于同一列。。

- C ,代表询问操作。

注意本题不会给出 n 的值。

输出描述:

对于每个询问操作,输出一个整数,代表编号为 x 的积木下方有多少块积木。
示例1

输入

复制
6
M 1 3
M 2 4
C 3
C 2
M 4 5
C 2

输出

复制
0
1
2

说明

对于第一次询问,编号 3 的积木下方没有积木,答案为 0。
对于第一次询问,编号 2 的积木下方有积木 4,答案为 1。
对于第一次询问,编号 2 的积木下方有积木 4、5,答案为 2。