描述
给定一棵树,输出树的根root,孩子最多的结点max以及他的孩子。
输入描述
第一行:n(结点个数≤100),m。
以下m行:每行两个结点x和y,表示y是x的孩子。
输出描述
第一行:树根:root;
第二行:孩子最多的结点max;
第三行:max的孩子(按编号由小到输出)。
用例输入 1
8 7 4 1 4 2 1 3 1 5 2 6 2 7 2 8
用例输出 1
4 2 6 7 8
//用数组模拟树
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
int x,y;
int li[n]={0};
for (int i=0;i<m;i++)
{
cin>>x>>y;
li[y-1]=x;
}
for (int i=0;i<n;i++)
{
if (li[i]==0)
{
cout<<i+1<<endl;
break;
}
}
int maxn=0;
int l=0;
for (int i=0;i<n;i++)
{
int s=0;
for (int j=0;j<n;j++)
{
if (li[j]==li[i]) s++;
}
if (s>maxn)
{
maxn=s;
l=li[i];
}
}
cout<<l<<endl;
for (int i=0;i<n;i++)
{
if (li[i]==l) cout<<i+1<<" ";
}
}