#include #include using namespace std; vector node[100001]; int cost[100001]; int dfs(int n) { if (0 == node[n].size()) { return 0; } int m = 1000000; for (int i = 0; i < node[n].size(); i++) { m = min(m, 1+dfs(node[n][i])); } return m; } int main(void) { int n, x, y; cin >> n; for (int i = 0; i < n-1; i++) { cin >> x >> y; node[x].push_back(y); cost[y] = 1 + cost[x]; } for (int i = 1; i <= n; i++) { cout << min(dfs(i), cost[i]) << endl; } return 0; }