Cod sursa(job #1773441)

Utilizator ionanghelinaIonut Anghelina ionanghelina Data 7 octombrie 2016 21:05:39
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<bits/stdc++.h>
#define maxN 250005
using namespace std;
int n,m,x,st[20][maxN],p,last,y;
int main()
{
    freopen("stramosi.in","r",stdin);
    freopen("stramosi.out","w",stdout);
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&st[0][i]);
    }
    x=log2(n);
    for(int i=1;i<=x;i++)
    for(int j=1;j<=n;j++)
    {
        st[i][j]=st[i-1][st[i-1][j]];
    }
    for(int i=1;i<=m;i++)
    {
        scanf("%d%d",&x,&p);
        last=x;
        while(p)
        {
        int k=1;
        int y=0;
        while((k<<1)<=p) k<<=1,y++;
        p-=k;
        //y=log2(k);
        last=st[y][last];
        }
        printf("%d\n",last);
    }
    return 0;
}