Pagini recente » Cod sursa (job #1843752) | Cod sursa (job #2417224) | Cod sursa (job #1135636) | Cod sursa (job #2312818)
#include <bits/stdc++.h>
using namespace std;
ifstream in("stramosi.in");
ofstream out("stramosi.out");
const int DIM = 3e5 + 7;
int ancestor[30][DIM];
int main()
{
int n, m;
in >> n >> m;
for(int i = 1; i <= n; i++)
{
in >> ancestor[0][i];
}
for(int i = 1; (1 << i) <= n; i++)
for(int j = 1; j <= n; j++)
ancestor[i][j] = ancestor[i - 1][ancestor[i - 1][j]];
while(m--)
{
int p, q;
in >> q >> p;
for(int i = 0; (1 << i) <= n && q != 0; i++)
if(p & (1 << i))
q = ancestor[i][q];
out << q << '\n';
}
}