Cod sursa(job #2363679)

Utilizator pasoi_stefanPasoi Stefan pasoi_stefan Data 3 martie 2019 14:56:19
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.59 kb
#include<fstream>
using namespace std;
ifstream cin("stramosi.in");
ofstream cout("stramosi.out");
int str[250005],dp[250005][18];
int N,M,Q,P,p,nr;
int main(){

    cin>>N>>M;

    for(int i=1;i<=N;i++)
        cin>>dp[i][0];

        for(int i=1;i<=N;i++)
            for(int k=1;k<=17;k++)
                if(dp[i][k-1])
                    dp[i][k]=dp[dp[i][k-1]][k-1];
                else break;

    for(int i=1;i<=M;i++){

        cin>>Q>>P;

        for(p=1,nr=0;p<=P;p<<=1,++nr)
            if(P&p)
                Q=dp[Q][nr];

        cout<<Q<<'\n';

    }

}