Pagini recente » Cod sursa (job #1216517) | Cod sursa (job #277534) | Cod sursa (job #196880) | Cod sursa (job #701730) | Cod sursa (job #2280812)
#include <fstream>
const std :: string programName = "stramosi";
std :: ifstream f(programName + ".in");
std :: ofstream g(programName + ".out");
const int NMAX = 25E4;
int N, M, tati[NMAX + 5];
void read(void);
void solve(void);
int Ancestor(int, int);
int main(void) {
read();
solve();
return 0x0;
}
void read(void) {
f >> N >> M;
for (int i = 1; i <= N; ++i)
f >> tati[i];
}
void solve() {
while (M--) {
int Q, P;
f >> Q >> P;
g << Ancestor(Q, P) << '\n';
}
}
int Ancestor(int Q, int P) {
while (P) {
Q = tati[Q];
P--;
}
return Q;
}