1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <kollib.h>
#include <stdio.h>
#include <message.h>
main()
{
 if(MyNodeId()==0)
  {
  int i,n=NumberOfStudents(),t[n],at[n],m=NumberOfQueries(),p;
  t[0]=1;
  t[1]=FirstNeighbor(1);
   for(i=2;i<n;i++)
  {
   if(FirstNeighbor(t[i-1])==t[i-2])
    t[i]=SecondNeighbor(t[i-1]);
   else
    t[i]=FirstNeighbor(t[i-1]);
  }
  for(i=0;i<n;i++)
   at[t[i]]=i;
  for(i=1;i<=m;i++)
  {
   p=at[QueryFrom(i)]-at[QueryTo(i)];
   if(p<0)
    p=-p;
   if(p>n/2)
    p=n-p;
   printf("%d\n",p);
  }
 }
 return 0;
}