class Solution { public: long long a=0,sts,n; vector<vector<int>>adj; vector<int>vis;   long long dfs(int v) { if(vis[v])return 0; vis[v]=1; int subt=1; for(int&i:adj[v])subt+=dfs(i); if(v)a+=(subt+sts-1)/sts; return subt; }   long long minimumFuelCost(vector<vector<int>>& roads, int seats) { n=size(roads)+1; adj.resize(n);vis.resize(n); sts=seats; for(auto&v:roads) { int i=v[0],j=v[1]; adj[i].push_back(j); adj[j].push_back(i); } dfs(0); return a; } };DFS