QOJ.ac

QOJ

時間限制: 2 s 記憶體限制: 256 MB 總分: 100

#97. 拜特兰合众国

统计

在字节国(Byteland),有 $N$ 座城市通过双向道路连接。字节国国王决定将政治体制改为联邦制共和国,并设立恰好 $K$ 个州(每个州由若干城市组成)。

国王不希望发生革命,因此他咨询了政治科学家。他们建议,改革政治体制最简单的方法是将每条道路改为单向道路,并将城市划分为若干个州,遵循以下简单规则:对于任意两座城市 $A$ 和 $B$,它们属于同一个州,当且仅当存在从 $A$ 到 $B$ 的路径,且同时也存在从 $B$ 到 $A$ 的路径。你是王国中最优秀的程序员,所以你应该调查是否可以在没有痛苦和恐惧的情况下进行改革。

输入格式

输入的第一行包含三个整数:$N$(城市数量)、$M$(道路数量)和 $K$(要求的州数量)。数据范围为 $1 \le N \le 16$,$0 \le M \le 10^5$,$1 \le K \le N$。接下来的 $M$ 行,每行包含两个整数 $u_i$ 和 $v_i$,表示第 $i$ 条道路连接的城市编号($1 \le u_i, v_i \le N$)。

输出格式

如果改革无法实现,输出 "NO"。否则,在第一行输出 "YES",并在接下来的 $M$ 行中输出改革方案。这 $M$ 行中的每一行对应输入中的一条边。输出边的顺序必须与输入中的顺序相同。第 $i$ 行应包含两个整数 $u_i$ 和 $v_i$,中间用空格隔开。顺序很重要:如果你输出 $u_i$ 和 $v_i$,则第 $i$ 条道路的方向是从 $u_i$ 到 $v_i$;如果你输出 $v_i$ 和 $u_i$,则道路的方向是从 $v_i$ 到 $u_i$。

样例

样例输入 1

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

样例输出 1

YES
1 2
2 3
3 1
4 1
5 2
5 4

样例输入 2

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

样例输出 2

NO

样例输入 3

16 0 16

样例输出 3

YES

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.