#include using namespace std; int main(){ int N; cin >> N; vector> G(N); for(int i = 0; i < N - 1; i++){ int a, b; cin >> a>> b; a--; b--; G[a].push_back(b); G[b].push_back(a); } vector dp(N); auto dfs = [&](auto dfs, int now, int par = -1)->void{ for(int to : G[now]){ if(to == par) continue; dfs(dfs, to, now); dp[now] += dp[to]; if(now > to) dp[now]++; } }; dfs(dfs, 0); auto dfs2 = [&](auto dfs2, int now, int temp, int par = -1)->void{ dp[now] += temp; for(int to : G[now]){ if(to == par) continue; if(now > to){ dfs2(dfs2, to, dp[now] - dp[to] - 1, now); } else{ dfs2(dfs2, to, dp[now] - dp[to] + 1, now); } } }; dfs2(dfs2, 0, 0); for(int i = 0; i < N; i++) cout << dp[i] << endl; }