Pagini recente » Cod sursa (job #1061447) | Cod sursa (job #241360) | Cod sursa (job #3208497) | Cod sursa (job #1616419) | Cod sursa (job #1538694)
#include <bits/stdc++.h>
using namespace std;
//f[i][j] al 2^i lea stramos al lui j
//f[i][j]=f[i-1][f[i-1][j]]
int f[19][250005];
ifstream in("stramosi.in");
ofstream out("stramosi.out");
int query(int p,int q)
{
for(int i=0;(1<<i)<=p;i++)
{
if((1<<i)&p)
{
q=f[i][q];
}
}
return q;
}
int main()
{int n,m,i,j;
in>>n>>m;
for(i=1;i<=n;i++)
{
in>>j;
f[0][i]=j;
}
for(i=1;(1<<i)<=n;i++)
{
for(j=1;j<=n;j++)
{
f[i][j]=f[i-1][f[i-1][j]];
}
}
for(i=1;i<=m;i++)
{
int y,x;
in>>x>>y;
out<<query(y,x)<<'\n';
}
return 0;
}