Logo 邂逅编程之美

UOJ

时间限制:1 s 空间限制:512 MB
Statistics

题目描述

蛤蟆皮 zsq 有 $n$ 只蛤蟆,编号为 $1 \sim n$。zsq 喜欢让蛤蟆按照一定的顺序排成一列,并且这个顺序可能变化。

zsq 可以让蛤蟆们进行两种操作:让第 $i$ 只蛤蟆移动到第 $j (j < i)$ 只蛤蟆前面或者让第 $i$ 只蛤蟆移动到第 $j (j>i)$ 只蛤蟆后面。但是蛤蟆们受到宇宙射线的影响,只会在第 $i$ 只蛤蟆到第 $j$ 只蛤蟆中编号小于 $a_i$ 的蛤蟆个数等于编号大于 $a_i$ 的蛤蟆个数时才会执行操作($a_i$ 为当前排列中第 $i$ 只蛤蟆的编号)。

现在蛤蟆们已经排成了一排,zsq 想要将蛤蟆们按照另一种顺序排列,请构造一种合法的方案或者报告无解。

输入格式

从文件 hammer.in 读入。

第一行两个正整数 $n$,表示蛤蟆个数。

接下来两行两个长度为 $n$ 的排列,分别表示蛤蟆初始的顺序和 zsq 期望的顺序。

输出格式

输出到文件 hammer.out

如果存在合法的方案,输出 YES,否则输出 NO

如果存在合法的方案,则在下一行输出方案所需步数 $m$,接下来 $m$ 行每行输出当前操作的 $i$ 和 $j$。

样例输入 1

3
1 2 3
3 2 1

样例输出 1

NO

样例输入 2

4
3 2 4 1
4 2 1 3

样例输出 2

YES
3
2 4
1 3
4 2

数据范围

对于全部数据,$1 \leq n \leq 200$。

子任务编号 分值 $n \leq$
$1$ $5$ $8$
$2$ $10$ $11$
$3$ $20$ $25$
$4$ $30$ $50$
$5$ $35$ $200$

如果正确判断是否存在方案但是方案错误则获得该子任务 $20\%$ 的分数,注意你仍然需要按格式输出方案。

可以证明,如果存在合法的方案,则所需最少步数不多于 $10^6$。