Cod sursa(job #2187127)

Utilizator mateibanuBanu Matei Costin mateibanu Data 26 martie 2018 11:21:17
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.5 kb
#include <bits/stdc++.h>

using namespace std;

int n,m,v[20][250010],i,p,q,j;

int main()
{
    freopen("stramosi.in","r",stdin);
    freopen("stramosi.out","w",stdout);
    scanf("%d%d",&n,&m);
    for (i=1;i<=n;i++) scanf("%d",&v[0][i]);
    for (j=1;(1<<j)<=n;j++)
        for (i=1;i<=n;i++) v[j][i]=v[j-1][v[j-1][i]];
    for (i=1;i<=m;i++){
        scanf("%d%d",&q,&p);
        for (j=0;(1<<j)<=p;j++)
            if (p&(1<<j)) q=v[j][q];
        printf("%d\n",q);
    }
    return 0;
}