#include #include #include #include #include #include #include #include #include #include #include #include using namespace std; //#define __int64 long long #define long __int64 #define REP(i,a,b) for(int i=a;i q; cin >> n; //初期化 for(int i=1; i<=n; i++){ kyori[i] = INT_MAX / 2; leaf[i] = true; } kyori[1] = 0; q.push(1); rep(i,n-1){ cin >> from[i] >> to[i]; leaf[from[i]] = false; } for(int i=1; i<=n; i++){ if(leaf[i]){ kyori[i] = 0; q.push(i); } } while(!q.empty()){ for(int i=0; i kyori[ q.front() ] + 1){ kyori[from[i]] = kyori[ q.front() ] + 1; q.push(from[i]); } } if(from[i] == q.front()){ if(kyori[to[i]] > kyori[ q.front() ] + 1){ kyori[to[i]] = kyori[ q.front() ] + 1; q.push(to[i]); } } } q.pop(); } for(int i=1; i<=n; i++){ cout << kyori[i] << endl; } return 0; }