Cod sursa(job #592200)

Utilizator Magnuscont cu nume gresit sau fals Magnus Data 26 mai 2011 22:54:58
Problema Stramosi Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <cstdio>

using namespace std;

int v[18][250001];

int main()
{
    int n,m,n2,x=0,i,j,a,b;
    freopen("stramosi.in","r",stdin);
    freopen("stramosi.out","w",stdout);
    scanf("%d %d\n",&n,&m);
    n2=n;
    while (n2)
    {
        ++x;
        n2>>=2;
    }
    for (i=1;i<=n;++i)
        scanf("%d",&v[0][i]);
    for (i=1;i<=x;++i)
        for (j=1;j<=n;++j)
            v[i][j]=v[i-1][v[i-1][j]];
    for (i=1;i<=m;++i)
    {
        scanf("%d%d",&a,&b);
        for (j=0;j<=x;++j)
            if (b&(1<<j))
                a=v[j][a];
        printf("%d\n",a);
    }
    return 0;
}