Pagini recente » Cod sursa (job #1915134) | Cod sursa (job #1712558) | Profil SabinaDorobantu | Cod sursa (job #3272972) | Cod sursa (job #3301624)
#include <bits/stdc++.h>
using namespace std;
int dp[20][250005];
int main()
{
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int n, m;
fin >> n >> m;
for (int i = 1; i <= n; ++i) {
fin >> dp[0][i];
}
for (int p = 1; p < 20; ++p) {
for (int i = 1; i <= n; ++i) {
dp[p][i] = dp[p - 1][dp[p - 1][i]];
}
}
for (int i = 1; i <= m; ++i) {
int node, k;
fin >> node >> k;
for (int bit = 0; bit < 20; ++bit) {
if (((1 << bit) & k) > 0) {
node = dp[bit][node];
}
}
fout << node << '\n';
}
return 0;
}