Cod sursa(job #241598)

Utilizator raica_cristiraica dumitru cristian raica_cristi Data 10 ianuarie 2009 14:46:55
Problema Stramosi Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.31 kb
#include<stdio.h>
#include<string.h>
int a[17][250000];
int ct=0;
int main ()
{
    freopen("stramosi.in","r",stdin);
    freopen("stramosi.out","w",stdout);
    int n,i,k,m,j,z,x,y,p,nr;
    scanf("%d%d",&n,&m);
   // int a[17][n];
    for(i=1;i<=n;i++)
    scanf("%d",&a[0][i]);
    a[0][0]=0;
    for(k=1;k<=17;k++)
 {z=0;
    for(i=1;i<=n;i++)
    {
                     a[k][i]=a[k-1][a[k-1][i]];
                     if(a[k][i]!=0)
                     z=1;
                //     printf("%d ",a[k][i]);
                     }
                //     printf("\n");
                     if(z==0)
                     break;
                     }
                   //  for(i=1;i<=n;i++)
                  //   printf("%d ",i);
                   //  printf("\n");
 /*   for(i=1;i<=k;i++)
   { for(j=1;j<=n;j++)
    printf("%d ",a[i][j]);
    printf("\n");
}*/
for(p=1;p<=m;p++)
{ct=0;
                scanf("%d%d",&x,&y);
                       while(y)
             {
                     if(y%2==1)
                     {       
                             x=a[ct][x];
                            
                             } 
                     ct++;
                     y/=2;
                     }
                     printf("%d\n",x);
                    
}
return 0;
}