#P14733. [ICPC 2022 Seoul R] Two Choreographies

[ICPC 2022 Seoul R] Two Choreographies

Description

Somim 和 Eunjoo 是著名的舞者和非常有才华的编舞家,但他们最近没有赢得比赛。为了今年赢得比赛,他们正试图互相帮助创作新的编舞。实际上,还没有人尝试过流畅地衔接静态动作,而他们将首次尝试!

Somim 和 Eunjoo 想为各自创作一套包含 nn 个静态动作的编舞。他们非常了解如何流畅地衔接静态动作,并得出结论:恰好 2n32n - 3 个无序静态动作对足以让他们自由表演。动作对 {A,B}\{A, B\} 的顺序无关紧要,即如果动作 BB 可以在动作 AA 之后衔接,那么 AA 也可以在 BB 之后衔接。

Somim 和 Eunjoo 想要表演的编舞如下:两套编舞持续时间相同,这意味着每套编舞应包含相同数量的静态动作。每套编舞应以其第一个静态动作结束。更准确地说,两套编舞 C1C_1C2C_2 是由 ll 个不同的静态动作组成的序列,C1=(a0,a1,...,al)C_1 = (a_0, a_1, ..., a_l)C2=(b0,b1,...,bl)C_2 = (b_0, b_1, ..., b_l),其中 a0=ala_0 = a_lb0=blb_0 = b_l。为了让观众感到有趣,C1C_1C2C_2 应该不同,即存在某个 0il10 \leq i \leq l - 1,使得 C1C_1 中的 {ai,ai+1}\{a_i, a_{i+1}\} 不等于 C2C_2 中任何 0jl10 \leq j \leq l - 1 对应的 {bj,bj+1}\{b_j, b_{j+1}\}。(例如,(1,2,3,4,5,1)(1,2,3,4,5,1)(3,4,5,2,1,3)(3,4,5,2,1,3) 是不同的,但 (1,2,3,4,5,1)(1,2,3,4,5,1)(3,4,5,1,2,3)(3,4,5,1,2,3) 是相同的。)此外,观众容易感到无聊,所以编舞不能太短,必须包含至少 33 个不同的静态动作,即 l3l \geq 3

为此,给定 2n32n - 3 个无序动作对 PP,这些动作对来自 nn 个不同的静态动作 m1,...,mnm_1, ..., m_n,两位舞者可以表演。对于一对 {mi,mj}\{m_i, m_j\}iji \neq j),mim_imjm_j 中的一个可以在序列中出现在另一个之后;它们之间没有特定的顺序。你需要编写一个程序,找出两套不同的编舞 C1=(a0,a1,...,al)C_1 = (a_0, a_1, ..., a_l)C2=(b0,b1,...,bl)C_2 = (b_0, b_1, ..., b_l),长度相同且 l3l \geq 3,使得对于任意 0il10 \leq i \leq l - 1,有 {ai,ai+1}P\{a_i, a_{i+1}\} \in P{bi,bi+1}P\{b_i, b_{i+1}\} \in P,且 a0=ala_0 = a_lb0=blb_0 = b_l

Input Format

你的程序需要从标准输入读取数据。输入的第一行包含一个整数 nn (4n100,0004 \leq n \leq 100,000),其中 nn 是两位舞者可以表演的静态动作数量。每个静态动作被编号为 11nn 的整数。接下来的 2n32n - 3 行表示 2n32n - 3 个无序静态动作对 PP。每行包含两个不同的整数,表示 PP 中的一个动作对。注意,PP 中没有两个对是相同的。

Output Format

你的程序需要向标准输出写入数据。如果你找不到两套静态动作编舞,则输出 1-1。否则,你应该恰好输出三行。第一行包含一个整数 l3l \geq 3,表示每套编舞中不同静态动作的数量。第二行包含恰好 ll 个整数,用空格分隔,按顺序表示一套编舞的 ll 个静态动作。最后一个重复的动作应省略。第三行包含恰好 ll 个整数,表示另一套编舞。

4
1 2
1 3
1 4
2 3
2 4
3
1 2 3
1 2 4
5
1 2
1 3
1 4
1 5
2 3
2 5
3 4
3
1 2 3
1 3 4
7
1 2
3 4
5 6
5 2
3 1
6 1
4 2
4 5
2 6
3 6
1 5
4
6 1 5 2
4 2 1 3

Hint

翻译由 DeepSeek V3 完成