Pagini recente » Cod sursa (job #3252346) | simulare67 | Cod sursa (job #1739087) | Cod sursa (job #337849) | Cod sursa (job #3301660)
#include <fstream>
using namespace std;
int dp[20][250005]; ///dp[k][i] = al 2^k lea stramos al lui i
int main()
{
ifstream cin("stramosi.in");
ofstream cout("stramosi.out");
int n,q;
cin>>n>>q;
for(int i=1; i<=n; i++)
cin>>dp[0][i];
for(int k=1; k<=20; k++)
{
for(int i=1; i<=n; i++)
dp[k][i]=dp[k-1][dp[k-1][i]];
}
while(q--)
{
int stra, nod;
cin>>nod>>stra;
for(int i=0; i<=20; i++)
{
if((1<<i)&stra)
nod=dp[i][nod];
}
cout<<nod<<'\n';
}
return 0;
}