Pagini recente » Cod sursa (job #2444640) | Cod sursa (job #37566) | Cod sursa (job #2631731) | Cod sursa (job #2418531) | Cod sursa (job #1738843)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin ("stramosi.in");
ofstream fout ("stramosi.out");
#define nmax 100000
int n, m;
int T[17][nmax];
vector<vector<int> > g;
int main ()
{
fin>>n>>m;
g.resize(n+1);
for (int i = 1; i <= n; i++)
{
fin >>T[0][i];
g[T[0][i]].push_back(i);
}
for (int i = 1; (1<<i) <= n; i++)
{
for (int k = 1; k <= n; k++)
{
T[i][k] = T[i-1][T[i-1][k]];
}
}
for (int i = 1; i <= m; i++)
{
int res;
int q,p;
fin>>q>>p;
for (int j = 0; p; p>>=1, ++j)
{
if (p & 1)
{
q = T[j][q];
}
}
cout<<q<<"\n";
}
}