求结点最多的一层 输出该层的结点个数以及层号
#include<bits/stdc++.h> using namespace std; vector<int>vec[120]; map<int,int>mp; void dfs(int v,int step) { mp[step]++; if(vec[v].size()==0){ return; } for(int i=0;i<vec[v].size();i++){ dfs(vec[v][i],step+1); } } int main() { int n,m; scanf("%d %d",&n,&m); for(int i=0;i<m;i++){ int id; int k; scanf("%d %d",&id,&k); while(k--){ int x; scanf("%d",&x); vec[id].push_back(x); } } dfs(1,1); multimap<int,int,greater<int> >M; for(auto it:mp){ M.insert(pair<int,int>(it.second,it.first)); } auto it=M.begin(); cout<<it->first<<" "<<it->second<<endl; return 0; }