import std; void main () { int N = readln.chomp.to!int; int[][] graph = new int[][](N, 0); foreach (i; 0..N-1) { int u, v; readln.read(u, v); u--, v--; graph[u] ~= v; graph[v] ~= u; } solve(N, graph); } void solve (int N, int[][] graph) { // スターグラフみたいなやつが来たら深さ2での探索うまくいかないんだよなぁってことで // 接続数を見ればいいんですね int[] ans = new int[](N); foreach (i; 0..N) { foreach (to; graph[i]) { ans[i] += graph[to].length-1; } } ans.each!writeln; } void read(T...)(string S, ref T args) { auto buf = S.split; foreach (i, ref arg; args) { arg = buf[i].to!(typeof(arg)); } }