精简信息

测试数据来自 system/3082

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

时间限制:1秒  内存限制:256M


【问题描述】

  一次信息学竞赛中,共有有 \(N\) 名选手参加(编号为 \(1..N\)),每个人的分数都是独一无二的,所以按分数由高到低排名时,每个选手都有确定名次。竞委会收到了 \(M\) 条关于选手排名的信息,所有信息都是形如“X排在Y的前面”这样的,在这些信息中可能有一些是多余的。

  有些冗余信息可以由其他信息推出,可以对这些信息进行精减。请你帮助竞委会删除尽量多的冗余信息,但要保证能推出原有的排名。

  注意:最初给出的信息中,可以保证最后的答案是唯一的,且信息中没有矛盾的,即不会出现 \(X\) 排在 \(Y\) 的前面,\(Y\) 排在 \(X\) 的前面的情况。

【输入格式】

  输入的第一行包含两个整数 \(N\) 和 \(M\),意义如题目描述。接下来的M行:每行两个整数 \(X\) 和 \(Y\)(\(1≤X,Y≤N\)),表示奶牛 \(X\) 排在 \(Y\) 的前面。

【输出格式】

  输出第一行包含一个整数 \(cnt\),表示精减后的信息数量。接下来的cnt行输出精减后的信息,每行包含两个整数,表示一条保留的信息。输出按第一个整数由小到大,若第一个整数相同,则按第二个整数由小到大的顺序输出。

【输入输出样例】

 Input

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

 Output

4
2 1
3 5
4 2
5 2

【数据说明】

  对于 \(100\%\) 的数据 \(1≤N≤1500\),\(0≤L≤10000\)。

【来源】

  Mr.he

定时练习(十三)订正

未参加
状态
已结束
规则
OI
题目
4
开始于
2025-04-21 12:00
结束于
2025-06-02 04:00
持续时间
1000.0 小时
主持人
参赛人数
21