#1230. 飞线

飞线

Background

Special for beginners, ^_^

Description

飞线(英语:Jump wire)也称跳线,是指印刷电路板上因设计缺陷、测试目的或是其他设计考量,将电路板上的两个节点直接用电线连通的一种方法。

原因 对于设计复杂的印刷电路板,有时候会因为疏忽或其他原因导致某一两根关键信号线没有被连接或是忘记接地。因为发现此问题时电路板大多已经投产,为节省时间或者降低再生产的成本,可能会选择将导线焊接在需要连接的两点之间作为变通措施。 有时候飞线也被用在对电路的改进或维修中,比如用来开启某些被硬件厂家关闭的功能,或者修补电路连线损坏。 适用 大部分飞线被用来连接低速的开关量信号线(如片选信号),或者低速的串行信号。高速并行信号因为线路长度往往存在不匹配的问题,以及导线容易引入干扰,所以极少应用飞线。 量产产品的飞线一般采用高品质的单根绝缘导线。尽管如此,一般情况下,使用飞线的电路品质会差于未使用的设计。因此有无飞线也是评价电路设计好坏的标准之一。 大部分飞线出现在实验室产品或量产后的第一批产品中,一般会在硬件问题修正后被去除。但也有少数量产产品会一直使用飞线的设计,例如ThinkPadT60笔记本电脑的主板。 其他意义 有时飞线也指排线中的断路现象。或者面包板上用来连接电路的专用导线。

Format

Input

输入的第一行是一个整数N,代表测试例数量。后面跟一个空行。两个测试例之间也有一个空行。 每个测试例的格式如下: 第一行给出一个正整数n,表示需要连接飞线的点的数量。 后面每一行给出一堆操作或者询问。 c 点i 点j,表示将点i和点j用飞线连接。 q 点i 点j,询问点i和点j是否连通。 上述的i和j满足1 <= i,j <= n。 .

Output

每个测试例的输出格式如下: 对每个测试点输出两个数,分别表示连通和不连通的询问的数量,中间用逗号隔开。 两个测试例之间输出一个空行。

Samples

2

10
c 1 5
c 2 7
q 7 1
c 3 9
q 9 6
c 2 5
q 7 5

1
q 1 1
c 1 1
q 1 1
1,2

2,0

Limitation

1s, 1024KiB for each test case.