Pagini recente » Cod sursa (job #42556) | Cod sursa (job #642980) | Cod sursa (job #3149281) | Cod sursa (job #588220) | Cod sursa (job #2631352)
#include <vector>
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int nr, q, nrPasi;
int gasire(vector<int> parinti, int muchie, int limita)
{
if (nrPasi == limita || parinti[muchie] == 0)
return muchie;
nrPasi++;
parinti[muchie] = gasire(parinti, parinti[muchie], limita);
return parinti[muchie];
}
int main()
{
int a, b, c, raspuns;
fin >> nr >> q;
vector<int> parinti(nr + 1, 0);
for (int i = 1; i <= nr; i++)
fin >> parinti[i];
for (int i = 1; i <= q; i++)
{
fin >> a >> b;
nrPasi = 0;
raspuns = gasire(parinti, a, b);
if (nrPasi < b)
raspuns = 0;
fout << raspuns << "\n";
}
fin.close();
fout.close();
return 0;
}