Cod sursa(job #1783177)

Utilizator bogdi1bogdan bancuta bogdi1 Data 18 octombrie 2016 20:38:05
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <cstdio>

using namespace std;
int s[20][250005];
inline int stramos(int str, int k)
{
    int i=0;
    while(k!=0)
    {
        if(k%2==1)
            str=s[i][str];
        k/=2;
        i++;
    }
    return str;
}
int main()
{   freopen("stramosi.in", "r",stdin);
    freopen("stramosi.out", "w",stdout);
    int n,m,i,j,q,p;
    scanf("%d%d", &n, &m);
    for(i=1; i<=n; i++)
        scanf("%d", &s[0][i]);
    for(i=1; i<=18; i++)
        for(j=1; j<=n; j++)
            s[i][j]=s[i-1][s[i-1][j]];
    for(i=1; i<=m; i++){
        scanf("%d%d", &q, &p);
        printf("%d\n", stramos(q,p));
    }
    return 0;
}