Cod sursa(job #2187118)

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

using namespace std;

int n,m,v[250010][20],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[i][0]);
    for (j=1;(1<<j)<=n;j++)
        for (i=1;i<=n;i++) v[i][j]=v[v[i][j-1]][j-1];
    for (i=1;i<=m;i++){
        scanf("%d%d",&q,&p);
        for (j=0;(1<<j)<=p;j++)
            if (p&(1<<j)) q=v[q][j];
        printf("%d\n",q);
    }
    return 0;
}