Cod sursa(job #2069250)

Utilizator DeadShadow80Han Leonard DeadShadow80 Data 18 noiembrie 2017 12:42:48
Problema Stramosi Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.11 kb
/**Familia lui Gigel este foarte numeroasa, avand exact N membri.
Fiecare membru stie cine este stramosul lui direct, mai putin cativa
membri care sunt foarte batrani si nu mai tin minte nici macar cine
a fost stramosul lor direct. Gigel, fiind o fire curioasa a facut
un inventar al familiei sale, in sensul ca a numerotat fiecare membru
 cu un numar distinct intre 1 si N si stie de asemenea pentru fiecare
 membru, care este stramosul lui direct (daca acesta exista).
 Curiozitatea lui este si mai mare, in sensul ca isi pune M intrebari de forma:
"Care este al P-lea stramos al membrului cu numarul Q?".
*/
#include <iostream>
#include <fstream>
using namespace std;

int n,m;

int t[250005];
ifstream in("stramosi.in");
ofstream out("stramosi.out");

int x,y;
void citire()
{
    in>>n>>m;
    for(int i=1;i<=n;i++)
    {
        in>>x;
        t[i]=x;
    }
}

void stramosi()
{
    for(int i=1;i<=m;i++)
    {
        in>>x>>y;
        while(y)
        {
            x=t[x];
            y--;
        }
        out<<x<<"\n";
    }
}


int main()
{
    citire();
    stramosi();
}