#include #include #include #include using namespace std; ifstream fin("help.in"); int N; typedef pair PI; typedef vector VPI; typedef vector VI; VPI T; VI V; VI VV; void solve(int pos){ if (T[pos].first==-1 && T[pos].second==-1){ V[pos]=1; VV[pos]=1; return; } unsigned long long B=0; if (T[pos].first!=-1){ solve(T[pos].first); B=VV[T[pos].first]; } unsigned long long C=0; if (T[pos].second!=-1){ solve(T[pos].second); C=VV[T[pos].second]; } long long D=B-C; V[pos]=abs(D)+1; VV[pos]=V[pos]+C+B; } int main(){ while(1){ fin>>N; T.clear(); if (N==0)break; V=VI(N+2,15); VV=VI(N+2,15); T=VPI(N+2,PI(-1,-1)); VI SEE(N+2,0); for (int n=1;n<=N;n++){ int a,b;fin>>a>>b; T[n]=PI(a,b); SEE[a]=1; SEE[b]=1; } int nsee=-1; for (int i=1;i<=N;i++) if (!SEE[i])nsee=i; solve(nsee); for (int i=1;i<=N;i++){ if (i-1)cout<<" "; cout<