Cod sursa(job #2631352)

Utilizator IRadu1529Radu Ionescu IRadu1529 Data 30 iunie 2020 09:29:40
Problema Stramosi Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#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;
}