func_code_string: #include <bits/stdc++.h>   using namespace std;   vector<pair<int, int> > adj[200001];   int totalIn, totalOut;   int inEdges[200001];   int outEdges[200001];   void dfs(int u, int par, int in, int out) {     inEdges[u] = in;     outEdges[u] = out;     for (pair<int, int> &p : adj[u]) {       int v = p.first;       int type = p.second;       if (v != par) {         if (type == 1) {           dfs(v, u, in, out + 1);           totalOut++;         } else {           dfs(v, u, in + 1, out);           totalIn++;         }       }     }   }   int main() {     ios_base::sync_with_stdio(false);     cin.tie(0);     cout.tie(0);     int n;     cin >> n;     int s, t;     for (int i = 0; i < n - 1; i++) {       cin >> s >> t;       adj[s].push_back({t, 1});       adj[t].push_back({s, -1});     }     dfs(1, -1, 0, 0);     int in;     vector<int> cities;     int minIn = totalIn;     cities.push_back(1);     for (int i = 2; i <= n; i++) {       in = totalIn - inEdges[i] + outEdges[i];       if (in < minIn) {         minIn = in;         cities.clear();         cities.push_back(i);       } else if (in == minIn) {         cities.push_back(i);       }     }     cout << minIn <<   n ;     for (int &i : cities) cout << i <<    ;     cout <<   n ;     return 0;   }   