Pagini recente » Cod sursa (job #636052) | Cod sursa (job #1426941) | Cod sursa (job #1774137) | Cod sursa (job #2291524) | Cod sursa (job #2597359)
#include <bits/stdc++.h>
using namespace std;
ifstream in("stramosi.in");
ofstream out("stramosi.out");
int n,m,p[250005],dp[250005][25];
int main()
{int i,j,q,P,p_2,stramos;
in >> n >> m;
for (i = 1; i <= n; i++) in >> dp[i][0];
for (j = 1; j <= 18; j++)
for (i = 1; i <= n; i++)
dp[i][j] = dp[dp[i][j - 1]][j - 1];
for (i = 1; i <= m; i++)
{
in >> q >> P;
p_2 = 0;
stramos = q;
while (P)
{
if (P % 2 == 1)
stramos = dp[stramos][p_2];
P >>= 1;
p_2++;
}
out << stramos << "\n";
}
return 0;
}