function<vector<int>(int,int) > dfs = [&](int x, int fa) -> vector<int> { vector<int> a = {cost[x]}; for (int y: g[x]) { if (y != fa) { auto res = dfs(y, x); for(auto k:res) a.push_back(k); } } // return a; };
auto dp =[&](int x,int fa)->void{ } ;