c++
\tclass Solution {\n\tpublic:\n\n\t\tvoid mk(vector> &e,vector> &g){\n\t\t\tfor(auto i: e){\n\t\t\t\tg[i[0]].push_back(i[1]);\n\t\t\t\tg[i[1]].push_back(i[0]);\
\tclass Solution {\n\tpublic:\n\n\t\tvoid mk(vector<vector<int>> &e,vector<vector<int>> &g){\n\t\t\tfor(auto i: e){\n\t\t\t\tg[i[0]].push_back(i[1]);\n\t\t\t\tg[i[1]].push_back(i[0]);\n\t\t\t}\n\t\t}\n\t\tunordered_map<int,int> s;\n\t\tint f(int u,vector<int> &a,vector<vector<int>> &g,int k,int p){\n\t\t\tif(k<=0){\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\ts[u]++;\n\t\t\tint c=0;\n\t\t\tfor(auto i: g[u]){\n\t\t\t\tif(s.find(i)==s.end()){\n\t\t\t\t\tc+=1;\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor(auto i: g[u]){\n\t\t\t\tif(i!=p){\n\t\t\t\t\tc+=f(i,a,g,k-1,u);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn c;\n\t\t}\n\t\tvector<int> maxTargetNodes(vector<vector<int>>& e1, vector<vector<int>>& e2, int k) {\n\t\t\tint n=e1.size(),m=e2.size();\n\t\t\tvector<int> a(n+1,0),b(m+1,0);\n\t\t\tvector<vector<int>> g1(n+1),g2(m+1);\n\t\t\tmk(e1,g1);\n\t\t\tmk(e2,g2);\n\t\t\tfor(int i=0;i<n+1;i++){\n\t\t\t\ts.clear();\n\t\t\t\ta[i]=(f(i,a,g1,k,-1))+1;\n\t\t\t}\n\t\t\tint c=0;\n\t\t\tfor(int i=0;i<m+1;i++){\n\t\t\t\tif(k-1<0) break;\n\t\t\t\ts.clear();\n\t\t\t\tb[i]=(f(i,b,g2,k-1,-1))+1;\n\t\t\t\tc=max(c,b[i]);\n\t\t\t}\n\t\t\tvector<int> ans;\n\t\t\tfor(auto i: a){\n\t\t\t\tans.push_back(i+c);\n\t\t\t}\n\t\t\treturn ans;\n\t\t}\n\t};
[]