Pagini recente » Cod sursa (job #2227039) | Cod sursa (job #2761892) | Cod sursa (job #2576643) | Cod sursa (job #2466894) | Cod sursa (job #3230698)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
int n, m;
int stramosi[33][250001];
int main() {
f >> n >> m;
for (int i = 1; i <= n; i++) f >> stramosi[0][i];
for (int i = 1; i < 33; i++)
for (int j = 1; j <= n; j++)
stramosi[i][j] = stramosi[i - 1][stramosi[i - 1][j]];
for (int i = 1; i <= m; i++) {
int p, q;
f >> q >> p;
int exp = 0;
while (p) {
if (p % 2 == 1) {
q = stramosi[exp][q];
}
exp++;
p/=2;
}
g << q << '\n';
}
return 0;
}