Cod sursa(job #1139468)
| Utilizator | Data | 11 martie 2014 10:41:25 | |
|---|---|---|---|
| Problema | Stramosi | Scor | 70 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.56 kb |
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
#define MAXN 250000
ifstream f("stramosi.in");
ofstream g("stramosi.out");
int n, m;
int tata[MAXN];
int dfs(int nd, int p) {
while (nd != 0 && p) {
nd = tata[nd]; p--;
}
return nd;
}
int main()
{
f >> n >> m;
for (int i = 1; i <= n; i++) {
f >> tata[i];
}
for (int i = 1; i <= m; i++) {
int x, y;
f >> x >> y;
g << dfs(x, y) << '\n';
}
f.close();
g.close();
return 0;
}
