//https://ncode.syosetu.com/n4830bu/277/ #include using namespace std; int N; vector> G; vector book; int maine(int idx, int par, int depth) { int ret = N; if (G[idx].size() == 1) ret = 0; for (auto&& nxt : G[idx]) { if (nxt == par) continue; ret = min(ret, maine(nxt, idx, depth + 1) + 1); } book[idx] = min(depth, ret); return ret; } int main() { cin >> N; G.resize(N); for (int i = 0; i < N - 1; i++) { int x, y; cin >> x >> y; x--; y--; G[x].emplace_back(y); G[y].emplace_back(x); } book.resize(N); maine(0, -1, 0); for (auto&& a : book) { cout << a << endl; } }