Pagini recente » Cod sursa (job #2308194) | Cod sursa (job #1957577) | Cod sursa (job #1474459) | Cod sursa (job #2303300) | Cod sursa (job #1740162)
#include <fstream>
#include <vector>
#define nmax 250001
using namespace std;
ifstream in ("stramosi.in");
ofstream out ("stramosi.out");
int n, m;
int T[18][nmax];
vector<vector<int> > g;
int main ()
{
in>>n>>m;
g.resize(n+1);
for (int i = 1; i <= n; i++)
{
in >>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;
in>>q>>p;
for (int j = 0; p; p>>=1, ++j)
{
if (p & 1)
{
q = T[j][q];
}
}
out<<q<<"\n";
}
}