Cod sursa(job #1787357)

Utilizator andy1207Cioltan Andrei andy1207 Data 24 octombrie 2016 15:36:34
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include<cstdio>
int t[19][300001];//t[i][j]=al 2^i -lea stramos al lui j
int query(int p,int q)
{
 int i;
 i=0;
 while(p!=0)
      {
       if(p%2!=0)
          q=t[i][q];
       p/=2;
       i++;
      }
 return q;
}
int main()
{
 int n,m,q,p;
 freopen("stramosi.in","r",stdin);
 freopen("stramosi.out","w",stdout);
 scanf("%d%d",&n,&m);
 for(int i=1;i<=n;i++)
    {
     scanf("%d",&t[0][i]);
    }
 for(int i=1;i<=18;i++)
    {
     for(int j=1;j<=n;j++)
        {
         t[i][j]=t[i-1][t[i-1][j]];
        }
    }
 for(int j=1;j<=m;j++)
    {
     scanf("%d%d",&q,&p);
     printf("%d\n",query(p,q));
    }
return 0;
}