CF643B Bear and Two Paths

题目描述

Bearland 有 $n$ 个城市,编号为 $1$ 到 $n$。城市之间通过双向道路连接。每条道路连接两个不同的城市,没有两条道路连接相同的城市对。 有一次,Bear Limak 在城市 $a$,他想去城市 $b$。由于没有直接的道路,他决定进行一次长途旅行,恰好访问每个城市一次。形式化地说: - 城市 $a$ 和 $b$ 之间没有直接的道路。 - 存在一个包含 $n$ 个不同城市的序列 $v_1, v_2, ..., v_n$,满足 $v_1=a$,$v_n=b$,且对于所有 $1 \leq i < n$,$v_i$ 和 $v_{i+1}$ 之间有道路。 另外一天,同样的事情再次发生。Limak 想从城市 $c$ 到城市 $d$。同样地,他们之间没有直接道路,但存在一个包含 $n$ 个不同城市的序列 $u_1, u_2, ..., u_n$,满足 $u_1=c$,$u_n=d$,且对于所有 $1\leq i < n$,$u_i$ 和 $u_{i+1}$ 之间有道路。 此外,Limak 认为 Bearland 中最多只有 $k$ 条道路。他想知道自己记得对不对。 给定 $n$、$k$ 和四个互不相同的城市 $a$、$b$、$c$、$d$,你能否找到可能的路径($v_1,\dots,v_n$ 和 $u_1,\dots,u_n$),使得所有给定条件都成立?请给出任意一种可行解,或者如果不可能则输出 $-1$。

输入格式

输入的第一行包含两个整数 $n$ 和 $k$($4\leq n\leq 1000$,$n-1\leq k\leq 2n-2$),表示城市数量以及道路数量的最大允许值。 第二行包含四个互不相同的整数 $a$、$b$、$c$、$d$($1\leq a,b,c,d\leq n$)。

输出格式

如果无法满足所有给定条件,请输出 $-1$。否则输出两行,每行描述一条路径。第一行应包含 $n$ 个不同的整数 $v_1,v_2,\dots,v_n$,其中 $v_1=a$,$v_n=b$。第二行应包含 $n$ 个不同的整数 $u_1,u_2,\dots,u_n$,其中 $u_1=c$,$u_n=d$。 两条路径最多生成 $2n-2$ 条道路:$(v_1,v_2),(v_2,v_3),\dots,(v_{n-1},v_n),(u_1,u_2),\dots,(u_{n-1},u_n)$。如果你的答案包含超过 $k$ 条不同的道路,或者不满足其他任何条件,则判为错误。注意,$(x,y)$ 与 $(y,x)$ 视为同一条道路。

说明/提示

在第一个样例中,应该有 $7$ 个城市且最多有 $11$ 条道路。给出的样例解产生了 $10$ 条道路,如图所示。你也可以看到长度为 $n$ 的简单路径,分别连接 $2$ 和 $4$,以及 $7$ 和 $3$。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF643B/3628f2a6a8994f3a6e5bdc8bfe5270b9f748a11c.png) 由 ChatGPT 5 翻译