Pagini recente » Cod sursa (job #1103276) | Cod sursa (job #1012082) | Cod sursa (job #1207565) | Cod sursa (job #237606) | Cod sursa (job #3232436)
#include <fstream>
#include <vector>
using namespace std;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
int n, m;
int main() {
f >> n >> m;
vector<int> a(n + 1);
vector<int[19]> b(n + 1);
for(int i = 1; i <= n; i++) {
f >> a[i];
}
for(int i = 1; i <= n; i++) {
b[i][0] = a[i];
}
for(int k = 1; k <= 18; k++) {
for(int i = 1; i <= n; i++) {
b[i][k] = b[b[i][k - 1]][k - 1];
}
}
for(int i = 1; i <= m; i++) {
int p, q;
f >> q >> p;
int aux = q;
for(int i = 18; i >= 0; i--) {
if((1 << i) & p) aux = b[aux][i];
}
g << aux << '\n';
}
return 0;
}