J. DFS序对(Easy Version)
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

本题定义、输入格式、输出格式均与困难版本相同,在这个版本中,$$$n\le 2\times 10^5$$$,但你只需构造出任意符合条件的树即可。

排列:长度为 $$$n$$$ 的定义为由 $$$1\sim n$$$ 以不同顺序组成的序列,且每个元素恰好出现一次。例如 $$$[2,1,3],[2,4,1,3]$$$ 都是排列,而 $$$[4,1,2]$$$ 不是排列,因为 $$$3$$$ 没有出现,$$$[1,2,3,2]$$$ 不是排列,因为 $$$2$$$ 出现了 $$$2$$$ 次。

树的dfs序:对一棵树进行深度优先遍历(DFS),每当我们第一次访问某个节点时,就将该节点编号加入序列中。得到的访问顺序称为DFS 序。例如:

对于给定的树,$$$[1,2,3,4,5,6,7],[1,3,4,7,5,6,2],[3,4,1,2,7,5,6]$$$ 均是这棵树能形成的 dfs 序。$$$[1,2,4,3,5,6,7]$$$ 不是这棵树的 dfs 序,因为 $$$2$$$ 号点到 $$$4$$$ 号点存在未访问的 $$$3$$$ 号点,$$$[1,2,3,4,5,7,6]$$$ 不是这棵树的 dfs 序,因为子树 $$$5$$$ 不满足 DFS 遍历性质。

现在,给定 $$$2$$$ 个 $$$1\sim n$$$ 组成的排列,现在要求你构造一棵树,使得这棵树包含这两种dfs序,可以证明这样的树总是存在的。

Input

第一行输入一个正整数 $$$T(1\le T\le 10^4)$$$,表示测试组数。

接下来每组测试中:

  • 第一行输入一个正整数 $$$n(3\le n\le 2\times 10^5)$$$
  • 第二行输入一个长度为 $$$n$$$ 的排列 $$$p_1,p_2,\cdots,p_n$$$,表示树的其中一种 dfs 序。
  • 第三行输入一个长度为 $$$n$$$ 的排列 $$$q_1,q_2,\cdots,q_n$$$,表示树的另一种 dfs 序。
  • 此外,保证 $$$p_1=1,q_1=1$$$。

此外,数据保证所有测试点的 $$$n$$$ 之和不超过 $$$2\times 10^5$$$。

Output

对于每组数据,输出共 $$$n-1$$$ 行,使其形成一棵树,每行输出 $$$2$$$ 个正整数 $$$u,v(1\le u,v\le n,u\neq v)$$$,表示一条边。

如果存在多种合法解,输出其中任意一种即可。

Example
Input
3
6
1 2 3 6 5 4
1 2 3 4 5 6
8
1 2 8 5 7 4 6 3
1 6 3 4 5 7 2 8
7
1 2 3 4 5 6 7
1 3 4 7 5 6 2
Output
1 2
2 3
3 4
3 5
3 6
1 2
2 8
1 5
5 7
1 4
1 6
6 3
1 2
1 3
3 4
3 5
5 6
3 7