QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 2048 MB Total points: 100

#10310. Condorcet Elections

الإحصائيات

今年是市政选举年。尽管该国领导人二十年来从未更迭,但选举始终是透明且公正的。

共有 $n$ 名候选人,编号从 $1$ 到 $n$,争夺执政权。选举采用一种变体的排序投票系统。在选票中,每位选民将所有 $n$ 名候选人按从最偏好到最不偏好的顺序进行排名。也就是说,每一张选票都是 $\{1, 2, \dots, n\}$ 的一个排列,其中排列的第一个元素对应最偏好的候选人。

如果候选人 $a$ 在超过半数的选票中比候选人 $b$ 更受偏好,我们就称候选人 $a$ 击败了候选人 $b$。

由于选举是公平透明的,国家电视台在选举实际开始前就已经宣布了 $m$ 个事实,第 $i$ 个事实为“候选人 $a_i$ 击败了候选人 $b_i$”!

你负责选举委员会的工作并统计选票。你需要提供一份选票列表,使得选举结果与电视台宣布的结果一致,或者确定这不可能实现。不过,强烈建议你找到一个解决方案,否则你可能会惹恼上级。

输入格式

第一行包含整数 $n$ 和 $m$ ($2 \le n \le 50$, $1 \le m \le \frac{n(n-1)}{2}$),分别表示候选人数和已知选举结果的配对数。

接下来的 $m$ 行中,第 $i$ 行包含两个整数 $a_i$ 和 $b_i$ ($1 \le a_i, b_i \le n, a_i \neq b_i$),表示候选人 $a_i$ 击败了候选人 $b_i$。

每个无序对 $\{a_i, b_i\}$ 最多出现一次。

输出格式

如果存在符合电视台宣布事实的选票列表,请输出 YES。否则,输出 NO。

如果存在有效的选票列表,请在接下来的行中输出其中一种方案。

首先输出选票总数 $k$ ($1 \le k \le 50\,000$)。可以证明,如果存在有效的选票列表,则一定存在一个不超过 $50\,000$ 张选票的方案。

然后输出 $k$ 行。其中第 $i$ 行包含 $\{1, 2, \dots, n\}$ 的一个排列,描述第 $i$ 张选票。排列中的第一个数字是最偏好的候选人,最后一个数字是最不偏好的候选人。

对于 $1 \le i \le m$,在 $k$ 个排列中,$a_i$ 必须在超过 $k/2$ 个排列中出现在 $b_i$ 之前。对于未出现在选举要求列表中的候选人对 $\{a, b\}$,其结果可以是任意的,包括 $a$ 和 $b$ 互不击败对方的情况。

样例

样例输入 1

2 1
1 2

样例输出 1

YES
1
1 2

样例输入 2

3 3
1 2
2 3
3 1

样例输出 2

YES
3
1 2 3
2 3 1
3 1 2

说明

观察可知,候选人 1 击败了候选人 2,因为在三张选票中,候选人 1 有两次排在候选人 2 前面,这超过了总票数的一半。同理,候选人 2 击败了候选人 3,候选人 3 击败了候选人 1。

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.