Cod sursa(job #2762064)

Utilizator PopelEmilBogdanPopel Emil-Bogdan PopelEmilBogdan Data 5 iulie 2021 13:41:25
Problema Stramosi Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.36 kb
#include <fstream>

using namespace std;


ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int N, M, MEMBRU, Nth_Stramos, membru_aux;
int stramosi_indici[250001];

int main()
{
    fin >>N>>M;

    for(int i=1;i<=N;++i)
    {
        fin >> stramosi_indici[i];
    }

        for(int i=1; i<=M; ++i)
        {
            fin >> MEMBRU >> Nth_Stramos;
            membru_aux = MEMBRU; //pentru a putea al P-lea stramos al membrului Q

            while(Nth_Stramos > 0 && membru_aux>0) //parcurgem stramosii de p-ori pentru fiecare membru Q
            {
                membru_aux = stramosi_indici[membru_aux];
                /**
                i=1)
                 membru aux = 5; P = 2;
                    ->cautam stramosul lui 5
                    membru aux = 4; P=1;
                    ->cautam stramosul lui 4
                    membru aux = 2; P=0; => se iese din while, raspunsul la prima intrebare este 2.
                    Analog, rezolvam pentru fiecare membru
                i=4)
                membru aux = 1; P = 3;
                    ->cautam stramosul lui 1
                    membru aux = 0; P=2;
                    -> stramosul lui 0 nu este cunoscut -> in fout se va scrie 0 */
                Nth_Stramos--;
            }
            fout << membru_aux << "\n";
        }
    }
    return 0;
}