Pagini recente » Cod sursa (job #427558) | Cod sursa (job #1561934) | Cod sursa (job #1195424) | Cod sursa (job #1331708) | Cod sursa (job #1855926)
#include <bits/stdc++.h>
using namespace std;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
const int nmax=250005;
//d[i][j]= al 2^i-lea stramos a lui j
int d[22][nmax],i,n,m,j;
int query (int p , int q)
{
int h;
for (h=0;(1<<h)<=p;h++)
{
if ((1<<h)&p)
{
q=d[h][q];
}
}
return q;
}
int main()
{
f>>n>>m;
for (i=1;i<=n;i++)
f>>d[0][i];
for (i=1;(1<<i)<=n;i++)
for (j=1;j<=n;j++)
d[i][j]=d[i-1][d[i-1][j]];
while (m--)
{
int x,y;
f>>x>>y;
g<<query(y,x)<<'\n';
}
return 0;
}