Pagini recente » Cod sursa (job #1157796) | Cod sursa (job #45117) | Cod sursa (job #3128409) | Cod sursa (job #135104) | Cod sursa (job #712187)
Cod sursa(job #712187)
#include <fstream>
#include <vector>
#define MAXN 250010
using namespace std;
int Log[MAXN],n,m,a[MAXN][20],i,j;
int query(int q,int p)
{
if(p==0) return q;
q=a[q][Log[p]];
p-=(1<<(Log[p]));
return query(q,p);
}
int main()
{
int p,q;
ifstream fi("stramosi.in");
ofstream fo("stramosi.out");
fi>>n>>m;
for(i=1;i<=n;i++) fi>>a[i][0];
for(i=1;(1<<i)<MAXN;i++)
for(j=1;j<=n;j++)
a[j][i]=a[a[j][i-1]][i-1];
for(i=2;i<=MAXN;i++) Log[i]=Log[i/2]+1;
for(i=1;i<=m;i++)
{
fi>>q>>p;
fo<<query(q,p)<<"\n";
}
return 0;
}