Cod sursa(job #330684)

Utilizator cezarbotolanbotolan cezar cezarbotolan Data 11 iulie 2009 11:25:46
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<cstdio>   
  
const int L = 18;   
const int N = (1<<L);   
  
int a[L][N],n,m;   
  
void matrice()   
{   
    int i,j;   
    for(j=1;j<=n;++j)   
        scanf("%d",&a[0][j]);   
    for(i=1;(1<<i)<=n;++i)   
        for(j=1;j<=n;++j)   
            a[i][j]=a[i-1][a[i-1][j]];   
}   
  
int stra(int p,int q)   
{   
    int i=0;   
    if(p>n)   
        return 0;   
    while(p)   
    {   
        if(p&1)   
            q=a[i][q];   
        ++i;   
        p>>=1;   
    }   
    return q;   
}   
  
int main()   
{   
    freopen("stramosi.in","r",stdin);   
    freopen("stramosi.out","w",stdout);   
    int p,q;   
    scanf("%d%d",&n,&m);   
    matrice();   
    while(m--)   
    {   
        scanf("%d%d",&q,&p);   
        printf("%d\n",stra(p,q));   
    }   
    return 
}