Pagini recente » Monitorul de evaluare | Cod sursa (job #500881) | Istoria paginii utilizator/cristinacismaru | Cod sursa (job #2452286) | Cod sursa (job #3296637)
#include <fstream>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int n, q, k, p, r, d[250001][19];
int main() {
fin >> n >> q;
for (int i = 1; i <= n; i++)
fin >> d[i][0];
for (int i = 1; i <= n; i++)
for (int j = 1; j <= 18; j++)
d[i][j] = d[d[i][j - 1]][j - 1];
while (q--) {
fin >> k >> p;
r = 0;
while (p != 0) {
if (p % 2 != 0)
k = d[k][r];
r++;
p /= 2;
}
fout << k << "\n";
}
return 0;
}