Pagini recente » Cod sursa (job #675491) | Cod sursa (job #1705203) | Cod sursa (job #98525) | Cod sursa (job #2924651) | Cod sursa (job #495106)
Cod sursa(job #495106)
#include <cstdio>
int nodes[30][250001];
int main ()
{
FILE *in=fopen("stramosi.in", "r"), *out=fopen("stramosi.out", "w");
int n, m, s1, s2;
fscanf(in, "%d%d", &n, &m);
for(int i=0; i<n; ++i)
fscanf(in, "%d", &nodes[0][i+1]);
for(int i=1; i<=30; ++i)
for(int j=1; j<=n; ++j)
nodes[i][j]=nodes[i-1][nodes[i-1][j]];
for(int i=0; i<m; ++i)
{
fscanf(in, "%d%d", &s1, &s2);
int t=0;
while(s2)
{
if(s2%2)
s1=nodes[t][s1];
s2/=2;
t++;
}
fprintf(out, "%d\n", s1);
}
return 0;
}