题目描述
题目描述
公元 年,地球居民迁居到金牛座 的第二颗行星,并在那里宣告银河联邦成立。同一年被定为宇宙历元年,人类也由此开始向银河深处拓展。
宇宙历 年,银河两大军事集团在巴米利恩星域展开决战。莱因哈特率领十万余艘战舰出征,杨威利则组织三万艘战舰迎敌。为了布置战场,杨威利把星域划分为 列,并把战舰依次编号为 到 。初始时,第 号战舰单独位于第 列,每一列都只有一艘战舰。
交战过程中,杨威利会发布调动指令 M i j。这条指令把第 号战舰所在的整支队列作为不可拆分的整体,在保持队内先后顺序不变的前提下,接到第 号战舰所在队列的尾部。题目保证执行这条指令前,两艘战舰不在同一列。
莱因哈特通过情报网监听这些调动,同时会发布询问指令 C i j。他想知道第 号战舰和第 号战舰当前是否在同一列;如果同列,还要知道它们之间排着多少艘战舰。
请按顺序处理全部指令,维护舰队的实时队列结构,并回答莱因哈特的每一次询问。
输入格式
第一行包含整数 ,表示指令总数。
接下来 行,每行是一条指令,格式为以下两种之一:
M i j:把战舰 所在的整列接到战舰 所在列的尾部。输入保证两舰执行前不在同一列。C i j:询问战舰 与战舰 的当前关系。
每条指令都满足 。
输出格式
调动指令不产生输出。
对于每条 C i j 指令输出一行:如果两舰同列,输出它们之间的战舰数量;如果两舰不在同一列,输出 。
4
M 2 3
C 1 2
M 2 4
C 4 2
-1
1
样例说明 #1
两次合并改变了队列结构;第一次查询的两舰不同列,第二次查询时两舰之间隔着一艘战舰。
3
C 1 2
M 1 2
C 1 2
-1
0
样例说明 #2
合并前两舰不同列,合并后相邻,因此两舰之间有 艘战舰。
5
M 1 2
M 3 4
M 1 3
C 2 4
C 1 4
1
2
数据范围与约定
,,且 。每条 M 指令涉及的两艘战舰在合并前一定分属不同队列。