Pagini recente » Cod sursa (job #3161953) | Cod sursa (job #2603315) | Cod sursa (job #188453) | Cod sursa (job #39094) | Cod sursa (job #3240672)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
const int NMAX = 250000;
int n, m, p, q;
int stramos[NMAX+1][20];
int main()
{
fin >> n >> m;
for(int i=1; i<=n; i++)
fin >> stramos[i][0];
for(int j=1; j<=20; j++)
{
for(int i=1; i<=n; i++)
if(stramos[i][j-1] != 0)
stramos[i][j] = stramos[stramos[i][j-1]][j-1];
}
while(m--)
{
fin >> p >> q;
for(int log=20; log>=0; log--)
{
if((1 << log) <= q)
{
p = stramos[p][log];
q -= (1<<log);
if(q == 0)break;
}
}
fout << p << '\n';
}
return 0;
}