有序奶牛

测试数据来自 system/1612

作业已超过截止时间,您无法递交本题目。

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


【问题描述】

  约翰的 \(N\) 头牛排成一行挤奶时,有确定的顺序。牛的编号为 \(1\sim N\)。他拥有 \(L\) 条关于奶牛顺序的信息,所有的信息都写成 “A排在B的前面” 这样的信息,而且他知道有一些信息是多余的。

  他觉得,有些冗余信息可以有其他信息推出,可以对这些信息进行精减。请你帮助约翰删除尽量多的冗余信息,但要保证能推出原有的顺序。

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

【输入格式】

  第 \(1\) 行包含两个整数 \(N\) 和 \(L\)。
  第 \(2\) 到 \(L+1\) 行:每行两个整数 \(X\) 和 \(Y\)(\(1≤X,Y≤N\)),表示奶牛 \(X\) 排在 \(Y\) 的前面。

【输出格式】

  第 \(1\) 行包含一个整数 \(U\)。
  第 \(2\) 到 \(U+1\) 行:输出精减后的信息,每行 \(2\) 个数字,按第 \(1\) 列数字顺序由小到大排序,若第 \(1\) 列数字相同,则按第 \(2\) 列的数字由小到大排序。

【输入输出样例】

 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≤500\),\(0≤L≤10000\)。

【来源】

  Mr.he

图的基本知识练习题

未认领
状态
已结束
题目
10
开始时间
2024-04-14 00:00
截止时间
2024-06-01 23:59
可延期
24.0 小时