Pagini recente » Cod sursa (job #1065901) | Cod sursa (job #2584651) | Cod sursa (job #1992782) | Cod sursa (job #2662516) | Cod sursa (job #3249169)
//Infoarena - problema Stramosi - https://www.infoarena.ro/problema/stramosi
#include<iostream>
#include<fstream>
using namespace std;
int n, m;
int* stramosi;
int** intrebari;
int gasireStramos(int p, int stramosActual, int kStramos);
int main(){
ifstream fin("input.in");
fin >> n >> m;
stramosi = new int[n];
intrebari = new int* [m];
for (int i = 1; i <= m; i++) {
intrebari[i] = new int[2];
}
for (int i = 1; i <= n; ++i) {
fin >> stramosi[i];
}
for (int i = 1; i <= m; ++i) {
fin >> intrebari[i][1] >> intrebari[i][2];
}
for (int i = 1; i <= m; i++) {
cout << gasireStramos(intrebari[i][2], intrebari[i][1], 0) << endl;
}
return 0;
}
int gasireStramos(int p, int stramosActual, int kStramos) {
if (kStramos == p) {
return stramosActual;
}
else if (kStramos != p && stramosi[stramosActual] == 0) {
return 0;
}
else {
gasireStramos(p, stramosi[stramosActual], ++kStramos);
}
}