#include<stdio.h>
#include<stdlib.h>
int visited[10005];
int level[10005];
int *a;
int queue[10005];
int lim[10005];
int front=0,rear=0;
int cmpfunc (const void * a, const void * b)
{
return ( *(int*)a - *(int*)b );
}
void playgame(int n)
{
int min=10005,flag=0,index,i,turn=0,max=0,j=1,k;;
min=1;
max=n;;
k=n;
while(1)
{
flag=0;
while(1)
{
// printf("level is %d j is %d min is %d\n",level[j],j,min);
if(level[j]==min&&j<=n)
{
flag=1;
// printf("Alice deleting %d\n",j);
level[j++]=20000;
}
else break;
}
if(flag==0)break;
turn++;
min++;
flag=0;
if(level[k]!=20000&&k>=0)
{
flag=1;
level[k--]=20000;
}
// if(flag==0)printf("BOb didnt delete\n");
if(flag==0)break;
turn++;
// printf("After bob turn is %d\n",turn);
max--;
flag=0;
}
}
void insert(int x)
{
queue[rear++]=x;
// printf("%d inserted\n",queue[rear-1]);
}
int delete()
{
if(rear==front)
{
// printf("Empty queue\n");
return -1;
}
else return queue[front++];
}
void bfs(int n)
{
int start=1,temp,j=1;
int lev=1,i;
insert(start);
visited[1]=1;
level[1]=1;
j=2;
// printf("Start insereted\n");
while(front!=rear)
{
start=delete();
if(start==1)lev++;
else if(a[start*(n+2)+2]>=1&&a[start*(n+2)+2]<=10002)
{
lev=level[start]+1;
// printf("Start is %d lev incremented old lev was %d\n",start,level[start]);
}
// lev=level[start]+1;
// printf("Start is %d lev is %d\n",start,lev);
for(i=1;i<=n&&a[start*(n+2)+i]!=0&&a[start*(n+2)+i]<=10002;i++)
{
//printf("Checking element %d\n",a[start][i]);
temp=a[start*(n+2)+i];
// printf("Temp=%d\n",temp);
if(temp>=1)
{
if(visited[temp]!=1)
{
insert(temp);
visited[temp]=1;
level[temp]=lev;
// printf("Inserted is %d level is %d\n",temp,lev);
}
}
}
}
}
int main()
{
int i,j,test;
int start,end,n,g;
//printf("test=%d\n",test);
while(test-->0)
{
front=rear=0;
//printf("n=%d\n",n);
if(n==1)
{
continue;
}
a
=(int *)malloc((sizeof(int))*(n
+2)*(n
+2));// printf("array allocated\n");
memset(level
,0,sizeof(level
)); // memset(a,0,sizeof(a)*(n+2)*(n+2));
memset(queue
,0,sizeof(queue
)); memset(visited
,0,sizeof(visited
));
for(i=1;i<n;i++)
{
scanf("%d %d",&start
,&end
); a[start*(n+2)+lim[start]+1]=end;
lim[start]=lim[start]+1;
a[end*(n+2)+lim[end]+1]=start;
lim[end]=lim[end]+1;
// b[end][start]=1;
}
if(n==2)
{
continue;
}
/* for(i=1;i<=n;i++)
{
g=1;
for(j=1;j<=n;j++)
{
if(b[i][j]==1)
{
a[i][g++]=j;
}
}
}*//*
for(i=1;i<=n;i++)
{
for(j=1;j<=n&&a[i*(n+2)+j]!=0;j++)
{
printf("i and j are %d %d element is %d\n",i,j,a[i*(n+2)+j]);
}
printf("\n");
}*/
//printf("levels assigned\n");
bfs(n);
qsort(level
, n
+1, sizeof(int), cmpfunc
); playgame(n);
//printf("levels are\n");
for(i=1;i<=n;i++)
{
//printf("%d %d\n",i,level[i]);
}
}
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4KICNpbmNsdWRlPHN0ZGxpYi5oPgppbnQgdmlzaXRlZFsxMDAwNV07CmludCBsZXZlbFsxMDAwNV07CmludCAqYTsKaW50IHF1ZXVlWzEwMDA1XTsKIGludCBsaW1bMTAwMDVdOwppbnQgZnJvbnQ9MCxyZWFyPTA7CgppbnQgY21wZnVuYyAoY29uc3Qgdm9pZCAqIGEsIGNvbnN0IHZvaWQgKiBiKQp7CiAgIHJldHVybiAoICooaW50KilhIC0gKihpbnQqKWIgKTsKfQoKdm9pZCBwbGF5Z2FtZShpbnQgbikKewppbnQgbWluPTEwMDA1LGZsYWc9MCxpbmRleCxpLHR1cm49MCxtYXg9MCxqPTEsazs7CgptaW49MTsKbWF4PW47OwoJaz1uOwoJd2hpbGUoMSkKCXsKCQlmbGFnPTA7CgkJd2hpbGUoMSkKCQl7CgkvLwkJcHJpbnRmKCJsZXZlbCBpcyAlZCBqIGlzICVkIG1pbiBpcyAlZFxuIixsZXZlbFtqXSxqLG1pbik7CgkJCWlmKGxldmVsW2pdPT1taW4mJmo8PW4pCgkJCXsKCQkJCWZsYWc9MTsKCQkvLwkJcHJpbnRmKCJBbGljZSBkZWxldGluZyAlZFxuIixqKTsKCQkJCWxldmVsW2orK109MjAwMDA7CgkJCX0KCQkJZWxzZSBicmVhazsKCQl9CgkJCWlmKGZsYWc9PTApYnJlYWs7CgkJCXR1cm4rKzsKCQkJbWluKys7CgoJCQlmbGFnPTA7CgkJCWlmKGxldmVsW2tdIT0yMDAwMCYmaz49MCkKCQkJewoJCQkJZmxhZz0xOwoJCQkJbGV2ZWxbay0tXT0yMDAwMDsJCQkJCgkJCX0KLy8JCWlmKGZsYWc9PTApcHJpbnRmKCJCT2IgZGlkbnQgZGVsZXRlXG4iKTsJCgkJaWYoZmxhZz09MClicmVhazsKCQl0dXJuKys7CgkvLwlwcmludGYoIkFmdGVyIGJvYiB0dXJuIGlzICVkXG4iLHR1cm4pOwoJCW1heC0tOwoJCWZsYWc9MDsKCQkKCX0KCQoJCQoJcHJpbnRmKCIlZFxuIix0dXJuKTsKIAp9CiAKdm9pZCBpbnNlcnQoaW50IHgpCnsKCQoJICBxdWV1ZVtyZWFyKytdPXg7Ci8vCXByaW50ZigiJWQgaW5zZXJ0ZWRcbiIscXVldWVbcmVhci0xXSk7CiAKfQogCmludCBkZWxldGUoKQp7CglpZihyZWFyPT1mcm9udCkKCXsKLy8JCXByaW50ZigiRW1wdHkgcXVldWVcbiIpOwoJCXJldHVybiAtMTsJCgl9CgllbHNlIHJldHVybiBxdWV1ZVtmcm9udCsrXTsKIAp9CiAKIAp2b2lkIGJmcyhpbnQgbikKewppbnQgc3RhcnQ9MSx0ZW1wLGo9MTsKaW50IGxldj0xLGk7Cmluc2VydChzdGFydCk7CnZpc2l0ZWRbMV09MTsKbGV2ZWxbMV09MTsKaj0yOwovLwlwcmludGYoIlN0YXJ0IGluc2VyZXRlZFxuIik7Cgl3aGlsZShmcm9udCE9cmVhcikKCXsKCQlzdGFydD1kZWxldGUoKTsKCQlpZihzdGFydD09MSlsZXYrKzsKCQllbHNlIGlmKGFbc3RhcnQqKG4rMikrMl0+PTEmJmFbc3RhcnQqKG4rMikrMl08PTEwMDAyKQoJCXsKCQkJbGV2PWxldmVsW3N0YXJ0XSsxOwoJCS8vCXByaW50ZigiU3RhcnQgaXMgJWQgbGV2IGluY3JlbWVudGVkIG9sZCBsZXYgd2FzICVkXG4iLHN0YXJ0LGxldmVsW3N0YXJ0XSk7CgkJfQoJLy8JbGV2PWxldmVsW3N0YXJ0XSsxOwoJLy8JcHJpbnRmKCJTdGFydCBpcyAlZCBsZXYgaXMgJWRcbiIsc3RhcnQsbGV2KTsKCQlmb3IoaT0xO2k8PW4mJmFbc3RhcnQqKG4rMikraV0hPTAmJmFbc3RhcnQqKG4rMikraV08PTEwMDAyO2krKykKCQl7CgkJCS8vcHJpbnRmKCJDaGVja2luZyBlbGVtZW50ICVkXG4iLGFbc3RhcnRdW2ldKTsKCQkJdGVtcD1hW3N0YXJ0KihuKzIpK2ldOwovLwkJCXByaW50ZigiVGVtcD0lZFxuIix0ZW1wKTsKCQkJaWYodGVtcD49MSkKCQkJewoJCQkJaWYodmlzaXRlZFt0ZW1wXSE9MSkKCQkJCXsKCQkJCQlpbnNlcnQodGVtcCk7CgkJCQkJdmlzaXRlZFt0ZW1wXT0xOwoJCQkJCWxldmVsW3RlbXBdPWxldjsKCS8vCQkJCXByaW50ZigiSW5zZXJ0ZWQgaXMgJWQgbGV2ZWwgaXMgJWRcbiIsdGVtcCxsZXYpOwoJCQkJfQkJCQoJCQl9CgkJfQoJfQoKfQogCmludCBtYWluKCkKewogCmludCBpLGosdGVzdDsKaW50IHN0YXJ0LGVuZCxuLGc7CiAKc2NhbmYoIiVkXG4iLCZ0ZXN0KTsKLy9wcmludGYoInRlc3Q9JWRcbiIsdGVzdCk7CiAKd2hpbGUodGVzdC0tPjApCnsKCXNjYW5mKCIlZCIsJm4pOwoJZnJvbnQ9cmVhcj0wOwoJLy9wcmludGYoIm49JWRcbiIsbik7CglpZihuPT0xKQoJewoJCXByaW50ZigiMVxuIik7CgkJY29udGludWU7Cgl9CgkKCWE9KGludCAqKW1hbGxvYygoc2l6ZW9mKGludCkpKihuKzIpKihuKzIpKTsKLy8JcHJpbnRmKCJhcnJheSBhbGxvY2F0ZWRcbiIpOwoJbWVtc2V0KGxldmVsLDAsc2l6ZW9mKGxldmVsKSk7Ci8vCW1lbXNldChhLDAsc2l6ZW9mKGEpKihuKzIpKihuKzIpKTsKCW1lbXNldChxdWV1ZSwwLHNpemVvZihxdWV1ZSkpOwoJbWVtc2V0KHZpc2l0ZWQsMCxzaXplb2YodmlzaXRlZCkpOwoJbWVtc2V0KGxpbSwwLHNpemVvZihsaW0pKTsKCglmb3IoaT0xO2k8bjtpKyspCgl7CgkJc2NhbmYoIiVkICVkIiwmc3RhcnQsJmVuZCk7CgkJYVtzdGFydCoobisyKStsaW1bc3RhcnRdKzFdPWVuZDsKCQlsaW1bc3RhcnRdPWxpbVtzdGFydF0rMTsKCgkJYVtlbmQqKG4rMikrbGltW2VuZF0rMV09c3RhcnQ7CgkJbGltW2VuZF09bGltW2VuZF0rMTsKCQkKCQkKCQkvLwliW2VuZF1bc3RhcnRdPTE7Cgl9CglpZihuPT0yKQoJewoJCXByaW50ZigiMlxuIik7CgkJY29udGludWU7Cgl9CgovKglmb3IoaT0xO2k8PW47aSsrKQoJewkKCQlnPTE7CgkJZm9yKGo9MTtqPD1uO2orKykKCQl7CgkJCWlmKGJbaV1bal09PTEpCgkJCXsKCQkJCWFbaV1bZysrXT1qOwoJCQl9CgkJfQoJfSovLyoKCWZvcihpPTE7aTw9bjtpKyspCgl7CgkJZm9yKGo9MTtqPD1uJiZhW2kqKG4rMikral0hPTA7aisrKQoJCXsKCQkJcHJpbnRmKCJpIGFuZCBqIGFyZSAlZCAlZCBlbGVtZW50IGlzICVkXG4iLGksaixhW2kqKG4rMikral0pOwoJCX0KCQlwcmludGYoIlxuIik7Cgl9Ki8KCS8vcHJpbnRmKCJsZXZlbHMgYXNzaWduZWRcbiIpOwoJCgliZnMobik7CgkgcXNvcnQobGV2ZWwsIG4rMSwgc2l6ZW9mKGludCksIGNtcGZ1bmMpOwoJcGxheWdhbWUobik7CgkvL3ByaW50ZigibGV2ZWxzIGFyZVxuIik7Cglmb3IoaT0xO2k8PW47aSsrKQoJewoJCS8vcHJpbnRmKCIlZCAlZFxuIixpLGxldmVsW2ldKTsKCX0KCWZyZWUoYSk7Cgp9CnJldHVybiAwOwogCn0gCg==