有向图的遍历
时间限制:1秒 内存限制:256M
【问题描述】
给出 \(n\) 个顶点(编号为 \(1\sim n\)),\(m\) 条边的有向图,请完成下列任务:
任务1、计算顶点 \(S\) 的出度和入度。
任务2、计算从顶点 \(S\) 出发能访问到的顶点。
任务3、计算从那些点可以走到 \(S\) 。
【输入格式】
第一行两个整数 \(n\) 和 \(m\);
接下来的 \(m\) 行,每行两个整数 \(x\) 和 \(y\),表示一条有向边,\(x\)表示弧尾,\(y\) 表示弧头;
最后一行一个整数 \(S\)。
【输出格式】
第 1 行:两个整数,表示顶点 \(S\) 的出度和入度;
第 2 行:第一个整数表示从 \(S\) 出发能访问到的顶点数量,后面的若干整数,由小到大输从 \(S\) 出发能访问到的顶点的编号。
第 3 行:第一个整数表示能走到 \(S\) 的顶点数量,后面若干整数,由小到大能走到 \(S\) 的顶点的编号。
【输入输出样例】
Input
6 10
1 2
1 4
3 2
3 5
4 2
4 5
5 1
5 2
6 3
6 5
1
Output
2 1
4 1 2 4 5
5 1 3 4 5 6
【数据说明】
对于 \(100\%\) 的数据 \(1≤n≤3000\),\(1≤m≤10000\)。
【来源】
Mr.he