Cod sursa(job #1650459)

Utilizator Vlad_lsc2008Lungu Vlad Vlad_lsc2008 Data 11 martie 2016 18:28:15
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <iostream>
#include <cstdio>
#include <vector>
#include <bitset>
#include <stack>
#define nmax 250010
using namespace std;

int n,m1,np;
int pater[20][nmax];

int main()
{
    int nod,i,j,who,nr;
    freopen("stramosi.in","r",stdin);
    freopen("stramosi.out","w",stdout);
    scanf("%d%d",&n,&m1);
    for(i=1;i<=n;i++)
        scanf("%d",&pater[0][i]);
    for(i=1;(1<<i)<=n;i++)
        for(j=1;j<=n;j++)
            pater[i][j]=pater[i-1][ pater[i-1][j] ];

    for(;m1;m1--)
    {
        scanf("%d%d",&who,&nr);
        while(nr)
        {
            for(i=0;(1<<i)<=nr; i++); i--;
            nr-=(1<<i);
            who=pater[i][who];
        }
        printf("%d\n",who);
    }

    fclose(stdin);
    fclose(stdout);
    return 0;
}