Cod sursa(job #2938588)

Utilizator gianiferSpita Alexandru-Mihai gianifer Data 12 noiembrie 2022 12:23:48
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.45 kb
#include<fstream>

using namespace std;
#define nmax 250003
ifstream cin("stramosi.in");
ofstream cout("stramosi.out");
int dp[nmax][21],m,n,q,p,k;
int main()
{cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>dp[i][0];
k=1;
     while(dp[dp[i][k-1]][k-1]!=0)
{dp[i][k]=dp[dp[i][k-1]][k-1];
k++;
}
}
for(int i=1;i<=m;i++)
{
 cin>>q>>p;
 for(int k=18;k>=0,p!=0;k--)
 {
  if((1<<k)<=p){
   p-=(1<<k);
  q=dp[q][k];
 }
 }
 cout<<q<<'\n';
}
}