/ ep / 比赛 / 测试 /

队列调整

队列调整

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

军队训练时,队伍需要经常进行整理
一开始,总共n个人排成一行n列的长队,将这些人编号为1-n,第i列的人编号是i
长官会下一些命令去整理队伍
命令的形式就像 M i j
意思是将第i列的所有人并到第j列,就是让第i列的人直接排到第j列的人后面,队列内部的顺序不变
注意:空的队列也视为一列。
有时会发出询问,询问队列的情况
询问的形式就像 Q i j
意思是询问编号为i的人和编号为j的人之间有多少个人(i不等于j,之间的人数不包括i和j)

输入格式

第一行,两个整数n,q,表示队伍总共有n个人,一共有q次命令或询问
接下来的q行,每行一个大写字母和两个整数
若为“M i j”的形式,则进行队列调整 (注意空的队列也可以调整)
若为“Q i j”的形式,则询问当前的编号i和编号j之间有多少人

输出格式

按照每个询问出现的顺序,对每个询问输出1行一个整数,表示i和j之间的人数
如果i和j不在同一列则输出-1

输入样例

3 4
M 1 3
Q 1 2
M 3 2
Q 1 2

输出样例

-1
1

样例解释

一开始状态
第一列:1
第二列:2
第三列:3
执行“M 1 3”后:
第一列:空
第二列:2
第三列:3 1
询问“Q 1 2”由于1和2不在同一列,所以返回-1
执行“M 3 2后”:
第一列:空
第二列:2 3 1
第三列:空
询问“Q 1 2”:1和2之间有一个人3,所以返回1

数据范围

对于30%数据 n<=300,q<=500
对于60%数据 n<=3000,q<=5000
对于100%数据 0<n<=30000 , 0<q<=200000,1<=i,j<=n

限制

时间限制1s,空间限制256M

题目来源

题目改编自NOI2002"银河英雄传说"

测试

未参加
状态
已结束
规则
OI
题目
2
开始于
2020-03-05 14:00
结束于
2020-03-05 14:06
持续时间
0.1 小时
主持人
参赛人数
1