#include using namespace std; #define ALL(x) begin(x),end(x) #define rep(i,n) for(int i=0;i<(n);i++) #define debug(v) cout<<#v<<":";for(auto x:v){cout<bool chmax(T &a,const T &b){if(abool chmin(T &a,const T &b){if(b ostream &operator<<(ostream &os,const vector&v){ for(int i=0;i<(int)v.size();i++) os< istream &operator>>(istream &is,vector&v){ for(T &x:v)is>>x; return is; } signed main(){ int N; cin >> N; vector> G(N); rep(i, N - 1){ int u, v; cin >> u >> v; u--, v--; G[u].push_back(v); G[v].push_back(u); } vector A(N, 0), B(N, 0); function f = [&](int cur, int par){ for(auto &to : G[cur])if(to != par){ A[to] = A[cur] + 1; f(to, cur); } return 0; }; function g = [&](int cur, int par){ int res = INF; for(auto &to : G[cur])if(to != par){ chmin(res, g(to, cur)); } if(res == INF) res = 0; else res++; B[cur] = res; return res; }; f(0, -1); g(0, -1); rep(i, N) cout << min(A[i], B[i]) << "\n"; return 0; }