Cod sursa(job #383758)

Utilizator adinadrian nitu adin Data 17 ianuarie 2010 22:36:25
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.5 kb
#include <stdio.h>
int v[18][250005],n,m,i,j,q,p;
int main()
{
    freopen("stramosi.in","r",stdin);
    freopen("stramosi.out","w",stdout);
    scanf("%d %d",&n,&m);
    for (i=1;i<=n;++i)
        scanf("%d",&v[0][i]);
    for (i=1;i<=17;++i)
        for (j=1;j<=n;++j)
            v[i][j]=v[i-1][v[i-1][j]];
    while (m--)
    {
        scanf("%d %d",&q,&p);
        for (i=0;i<=17;++i)
            if (p & (1<<i))
                q=v[i][q];
        printf("%d\n",q);
    }
    return 0;
}