func_code_string: #include <bits/stdc++.h>   using namespace std;   const int M = 200005;   int n, f[M], ans;   int tot, head[M], Next[M * 2], vet[M * 2], len[M * 2];   void add(int a, int b, int c) {     Next[++tot] = head[a], vet[tot] = b, len[tot] = c;     head[a] = tot;   }   void dfs1(int x, int pre) {     for (int i = head[x]; i; i = Next[i]) {       int y = vet[i], z = len[i];       if (y == pre) continue;       dfs1(y, x);       f[x] += f[y] + z;     }   }   void dfs2(int x, int pre) {     for (int i = head[x]; i; i = Next[i]) {       int y = vet[i], z = len[i];       if (y == pre) continue;       if (z)         z = -1;       else         z = 1;       f[y] = f[x] + z;       ans = min(ans, f[y]);       dfs2(y, x);     }   }   int main() {     scanf( %d , &n);     for (int i = 2; i <= n; i++) {       int a, b;       scanf( %d%d , &a, &b);       add(a, b, 0);       add(b, a, 1);     }     dfs1(1, 0);     ans = f[1];     dfs2(1, 0);     printf( %d n , ans);     for (int i = 1; i <= n; i++)       if (f[i] == ans) printf( %d  , i);     return 0;   }   