P16975 [NWERC 2017] 连点成线 / Connect the Dots
题目背景
译自 [Northwestern Europe Regional Contest (NWERC) 2017](http://2017.nwerc.eu) Problem C。
原题许可协议为 CC BY-SA。
题目描述
一个著名的逻辑问题是:在一张纸上有 $9$ 个点,要求用铅笔画出 $4$ 条线段把它们连起来,并且中途不能把铅笔从纸上抬起。这个问题本身并不太难(虽然需要一些跳出框架的思考),但 Simone 最近正在围绕这个概念的推广版本制作一款名为“Connect the Dots”的游戏。
在 Connect the Dots 中,你会看到一个 $4 \times 4$ 的规则点阵。每个点被赋予 $1$ 到 $16$ 之间一个唯一的编号。任务是按照编号顺序连接这些点,从编号为 $1$ 的点开始,到编号为 $16$ 的点结束。你需要使用尽可能少的线段连接它们,从点 $1$ 开始,并且每一条线段的终点都是下一条线段的起点。
线段允许相交,也允许互相重叠。此外,在尝试连接当前目标点时,允许线段经过其他点。例如,按照 $1,4,2,3,2,4,\ldots$ 的顺序访问前几个点是可以接受的。形式化地说,序列 $1,2,\ldots,15,16$ 必须是被访问点序列的一个子序列。
:::align{center}

:::
图 1:第一个样例的一种解法。
Simone 让你尝试这个谜题,并和你赌一个气球说它太难了。写一个程序来解决这个谜题,证明她错了!
输入格式
输入包含 $4$ 行,每行 $4$ 个整数,表示点阵中各个点的编号。
第 $i$ 行第 $j$ 个数表示点阵第 $i$ 行第 $j$ 个点的编号。
输出格式
输出按顺序连接所有点所需的最少线段数量。
说明/提示
【数据规模与约定】
输入中的 $16$ 个数字均在 $1$ 到 $16$ 之间(包含端点),并且两两不同。