Pagini recente » Cod sursa (job #86360) | Cod sursa (job #2641032) | Cod sursa (job #2379807) | Cod sursa (job #317761) | Cod sursa (job #2762064)
#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;
}