#include #include #include #include #include #include #include #include #include #include #include #define REP(i,s,n) for(int i=(int)(s);i<(int)(n);i++) using namespace std; typedef long long int ll; typedef vector VI; typedef pair PI; const double EPS=1e-9; const int N = 100100; VI edges[N]; int rd[N], ld[N]; void dfs(int v, int par = -1) { if (par == -1) { rd[v] = 0; } else { rd[v] = rd[par] + 1; } int mi = N * 2; REP(i, 0, edges[v].size()) { int w = edges[v][i]; if (w == par) { continue; } dfs(w, v); mi = min(mi, ld[w] + 1); } if (mi == N * 2) { mi = 0; } ld[v] = mi; } int main(void){ int n; cin >> n; REP(i, 0, n - 1) { int x, y; cin >> x >> y; x--, y--; edges[x].push_back(y); edges[y].push_back(x); } REP(i, 0, n) { rd[i] = -1; } dfs(0); REP(i, 0, n) { cout << min(rd[i], ld[i]) << endl; } }