#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
const int N = 1010;
vector<int> g[N];
int parent[N];
void link(int x, int y) {
g[x].push_back(y);
parent[y] = x;
}
int main() {
int n, m;
cin >> n >> m;
for (int i = 1; i <= n; i++) {
parent[i] = 0;
}
for (int i = 1; i <= m; i++) {
int x, y;
cin >> x >> y;
link(x, y);
}
//树根
int root = 0;
for (int i = 1; i <= n; i++) {
if (parent[i] == 0)
root = i;
}
cout << root << endl;
//孩子最多的结点
int max_children_node = 0;
int max_children_count = 0;
for (int i = 1; i <= n; i++) {
int len = g[i].size();
if (len >= max_children_count) {
max_children_count = len;
max_children_node = i;
}
}
cout << max_children_node << endl;
//孩子最多的结点的孩子的编号
vector<int> children = g[max_children_node];
sort(children.begin(), children.end());
int length = children.size();
for (int i = 0; i < length; i++) {
if (i != 0) cout << " ";
cout << children[i];
}
return 0;
}
0 回复
0 转发
0 喜欢
3 阅读



