#P1196. [NOI2002] 银河英雄传说

[NOI2002] 银河英雄传说

[NOI2002] 银河英雄传说

  • 时间限制:1 秒
  • 内存限制:512 MiB

题目背景

巴米利恩星域的决战中,杨威利不断调整战舰队列,莱因哈特则希望实时掌握舰队位置。

题目描述

共有 3000030000 艘战舰,编号为 1,2,…,300001,2,\ldots,30000。初始时,第 ii 号战舰单独构成一支队伍。

需要依次执行两类指令:

  • M i j:把第 ii 号战舰所在的整支队伍作为一个整体,接到第 jj 号战舰所在队伍的尾部。队伍内部原有顺序不变。输入保证两艘战舰在合并前不属于同一队伍。
  • C i j:若两艘战舰属于同一队伍,询问它们之间有多少艘战舰;否则答案为 −1-1。

每条指令均满足 i≠ji\ne j。

输入格式

第一行一个整数 TT,表示指令数。

接下来 TT 行,每行包含一个字符 M 或 C,以及两个整数 i,ji,j。

输出格式

对每条 C 指令输出一行答案。

样例输入

4
M 2 3
C 1 2
M 2 4
C 4 2

样例输出

-1
1

数据范围

  • 1≤T≤5×1051\le T\le5\times10^5;
  • 1≤i,j≤300001\le i,j\le30000 且 i≠ji\ne j;
  • M 指令保证两艘战舰原本不在同一队伍。

本题每个测试点独立计分,同一子任务内测试点等分。

子任务编号 分值 特殊限制
1 20 T≤300T\le300
2 25 T≤3000T\le3000
3 20 所有 M 指令均出现在所有 C 指令之前
4 35 无特殊限制