Cod sursa(job #991949)

Utilizator gbi250Gabriela Moldovan gbi250 Data 31 august 2013 21:04:02
Problema Stramosi Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <cstdio>
#define dim 250010

using namespace std;

int n, m, i, j, p, q, k, d[20][dim];

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", &d[0][i]);

    for(i=1; i<=20; ++i)
        for(j=1; j<=n; ++j)
            d[i][j]=d[i-1][d[i-1][j]];
    for(i=1; i<=m; ++i)
    {
        scanf("%d %d", &p, &q);
        k=0;
        while(q)
        {
            if(q&1)
                p=d[k][p];
            ++k;
            q=q>>1;
        }
        printf("%d\n", p);
    }
    return 0;
}