UVA11987 Almost Union-Find
题目描述
有 $n$ 个集合,$m$ 次操作。规定第 $i$ 个集合里初始只有 $i$。有三种操作:
1. 输入两个元素 $p$ 和 $q$,若 $p$ 和 $q$ 不在一个集合中,合并两个元素的集合。
2. 输入两个元素 $p$ 和 $q$,若 $p$ 和 $q$ 不在一个集合中,把 $p$ 添加到 $q$ 所在的集合。
3. 输入一个元素 $p$,查询 $p$ 所在集合的元素个数和所有元素之和。
输入格式
有几组数据。
每组数据第一行输入 $n$ 和 $m$ 两个整数。
每组数据以下 $m$ 行,每行第一个数 $k$ 代表选择哪一个命令,若 $k$ 是 $1$ 或 $2$ 命令,则再输入两个整数 $p$ 和 $q$。若 $k$ 是 $3$,则输入一个整数 $p$。
输入文件结束符(EOF)结束输入。
输出格式
输出行数为每组数据 $3$ 号命令的总数。
每一行输出两个整数 $a$ 和 $b$,即元素个数和元素和。
说明/提示
$1 \leq n,m\leq 10 ^ 5$,$1 \leq p,q\leq n$。