Pagini recente » Cod sursa (job #740903) | Cod sursa (job #1370711) | Cod sursa (job #2576180) | Cod sursa (job #507713) | Cod sursa (job #2503354)
#include <fstream>
using namespace std;
ifstream fin ("stramosi.in");
ofstream fout ("stramosi.out");
int n, m, x, y, k;
int tata[25][250005];
inline int find_daddy(int nod, int sus) {
int x = 0;
while (sus) {
++x;
if (sus & 1)
nod = tata[x][nod];
sus >>= 1;
}
return nod;
}
int main() {
fin >> n >> m;
for (int i = 1; i <= n; ++i)
fin >> tata[1][i];
bool gata = false;
for (int i = 1; !gata; ++i) {
gata = true;
for (int j = 1; j <= n; ++j) {
tata[i + 1][j] = tata[i][tata[i][j]];
if (tata[i + 1][j])
gata = false;
}
}
while (m--) {
fin >> x >> y;
k = find_daddy(x, y);
fout << k << '\n';
}
return 0;
}