Pagini recente » Cod sursa (job #1420350) | Cod sursa (job #2772467) | Cod sursa (job #143187) | Cod sursa (job #3183488) | Cod sursa (job #3249174)
//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("stramosi.in");
ofstream fout("stramosi.out");
fin >> n >> m;
stramosi = new int[n + 1];
intrebari = new int* [m + 1];
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++) {
fout << gasireStramos(intrebari[i][2], intrebari[i][1], 0) << endl;
}
fin.close();
return 0;
}
int gasireStramos(int p, int stramosActual, int kStramos) {
if (kStramos == p) {
return stramosActual;
}
else if (stramosi[stramosActual] != 0) {
gasireStramos(p, stramosi[stramosActual], ++kStramos);
}
else {
return 0;
}
}