Cod sursa(job #2339664)

Utilizator maria_sinteaMaria Sintea maria_sintea Data 9 februarie 2019 11:01:22
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[N][20];

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

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

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[a][p], k=k-1;
            p++;
            k=k/2;
        }
        printf("%d\n", a);
    }
    return 0;
}