Pagini recente » Cod sursa (job #1165209) | Cod sursa (job #868065) | Cod sursa (job #2639282) | Cod sursa (job #2424492) | Cod sursa (job #3198107)
#include <iostream>
#include <fstream>
using namespace std;
int v[250001], stramosi[300001][21];
int main()
{
ifstream cin("stramosi.in");
ofstream cout("stramosi.out");
int n, m, p, q, i, j, putere;
cin >> n >> m;
for(i = 1; i <= n; i++)
{
cin >> v[i];
stramosi[i][0] = v[i];
}
for(i = 1; i < 20; i++)
{
for(j = 1; j <= n; j++)
{
stramosi[j][i] = stramosi[stramosi[j][i - 1]][i - 1];
}
}
for(i = 1; i <= m; i++)
{
cin >> q >> p;
putere = 0;
while(p != 0)
{
if(p % 2 == 1)
{
q = stramosi[q][putere];
}
putere++;
p >>= 1;
}
cout << q << "\n";
}
return 0;
}