Cod sursa(job #292269)

Utilizator katamashCatalin Tamas katamash Data 30 martie 2009 22:10:43
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<stdio.h>   
int a[18][250005];   
  
  
  
int calcul(int p, int q)   
{   
    int i=0;   
    while(p!=0)   
    {   
        if(p%2)   
        {   
            q=a[i][q];   
        }   
        ++i;   
        p/=2;   
    }   
    return q;   
}   
  
void citire()   
{   
    int i,j,p,q,n,m;   
    freopen("stramosi.in","r",stdin);   
    scanf("%d %d\n",&n,&m);   
    for(i=1;i<=n;++i)   
        scanf("%d ",&a[0][i]);   
    for(i=1;i<18;++i)   
        for(j=1;j<=n;++j)   
            a[i][j]=a[i-1][a[i-1][j]];   
    freopen("stramosi.out","w",stdout);   
    for(i=1;i<=m;++i)   
    {   
        scanf("%d %d\n", &q,&p);   
        printf("%d\n",calcul(p,q));   
    }   
}   
  
int main()   
{   
    citire();   
    return 0;   
}