Cod sursa(job #2339719)

Utilizator maria_sinteaMaria Sintea maria_sintea Data 9 februarie 2019 11:14:53
Problema Stramosi Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <iostream>
#include <cstdio>
#define N 250005

using namespace std;

int n, m, a, k, t[20][N];

void citire()
{
    scanf("%d %d\n", &n, &m);
    for(int i=1;i<=n;i++)
        scanf("%d ", &t[0][i]);
}

void stramosi()
{
    for(int j=1;j<20;j++)
        for(int i=1;i<=n;i++)
            t[j][i]=t[j-1][t[j-1][i]];
}

int main()
{
    freopen("stramosi.in", "r", stdin);
    freopen("stramosi.out", "w", stdout);

    citire();
    stramosi();
    for(int i=0;i<m;i++)
    {
        scanf("%d %d\n", &a, &k);
        int p=0;
        while(k)
        {
            if(k%2!=0)
                a=t[p][a];
            p++;
            k=k>>1;
        }
        printf("%d\n", a);
    }
    return 0;
}