P14552 [ROI 2013 Day1] 乌拉尔冰球赛

题目描述

为了普及冰球运动并提高乌拉尔地区冰球队的技术水平,组织了一场全乌拉尔锦标赛。锦标赛邀请了来自乌拉尔各城市的 $N$ 支冰球队参加。 在前两轮比赛后,每支球队各进行了一场比赛,结果发现参赛队伍过多。锦标赛组织者决定只允许 $K$ 支球队继续参赛,且这些球队中任意两支在前两轮比赛中均未相遇。 需要编写一个程序,找出满足条件的 $K$ 支球队集合,或者输出无法实现的消息。如果存在多个符合条件的集合,只需找出其中任意一个。

输入格式

输入文件的第一行包含一个数字 $N$($2 \leqslant N \leqslant 100,000$,$N$ 为偶数)。 随后的 $N$ 行包含所有已进行比赛的描述。每场比赛的描述由两个不超过 $N$ 的自然数组成——表示参加比赛的球队编号。 前 $N/2$ 行对应第一轮的比赛,其余行对应第二轮的比赛。 输入文件的最后一行包含一个数字 $K$($2 \leqslant K \leqslant N$)。 保证每支球队恰好进行了两场比赛:一场在第一轮,一场在第二轮。

输出格式

输出文件应包含:如果无解,则仅输出一个数字 $0$;否则输出 $K$ 个不同的数字——所选球队的编号。

说明/提示

### 评分 本题包含三个子任务。每个子任务的评分使用独立的测试组。仅当通过该组所有测试时,子任务的得分才会被计入。 #### 子任务 1 $N \leqslant 10$。 该子任务分值为 30 分。 #### 子任务 2 $N \leqslant 1000$。 该子任务分值为 30 分。 #### 子任务 3 $N \leqslant 100,000$。 该子任务分值为 40 分。