Pagini recente » Cod sursa (job #3221612) | Cod sursa (job #1509183) | Cod sursa (job #632999) | Cod sursa (job #1008842) | Cod sursa (job #3224499)
#include<fstream>
using namespace std;
ifstream cin("stramosi.in");
ofstream cout("stramosi.out");
int dp[250005][40];
int main()
{
int n, m, i, j, p, q, ans = 0, cnt = 0, a;
cin >> n >> m;
for (i = 1; i <= n; i ++)
{
cin >> a;
dp[i][0] = a; ///primul stramos al lui i e a
}
for(i = 1; i <= n; i ++)
for(j = 1; (1 << j) <= n; j ++)
dp[i][j] = dp[dp[i][j - 1]][j - 1];
for (i = 1; i <= m; i ++)
{
cin >> p >> q;
ans = p;
cnt = 0;
for(j = 0; (1 << j) <= n; j++)
{
if(q & (1 << j))
ans = dp[ans][j];
}
cout << ans << '\n';
}
return 0;
}