Cod sursa(job #2187115)

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

using namespace std;

#define NMAX 250010

int n,m,v[NMAX][20];

int main()
{
    int i,p,q,j;
    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;
}