Cod sursa(job #1383291)

Utilizator sicsicFMI-Coteanu Vlad sicsic Data 10 martie 2015 08:33:52
Problema Stramosi Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include<fstream>
using namespace std;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
int n,m,nr=0,q,p,sol;
struct lista{int nod; lista*leg;} *G[250005];
void adaug(int i,int j)
{
    lista *p;
    p=new lista;
    p->nod=j;
    p->leg=G[i];
    G[i]=p;
}
void citire()
{
    f>>n>>m;
    int j;
    for(int i=1;i<=n;++i)
    {
        f>>j;
        adaug(i,j);
    }
}
void Dfs(int s)
{
    lista *pr;
   // g<<s<<" "<<nr<<'\n';
    if(nr==p) sol=s;
    for(pr=G[s];pr;pr=pr->leg)
        if(nr<p) nr++,Dfs(pr->nod);
}
int main()
{
    citire();
    for(int i=1;i<=m;++i)
    {
        f>>q>>p;
        nr=0;
        Dfs(q);
        //g<<nr<<'\n';
        if(nr==p) g<<sol<<'\n';
        else g<<"0"<<'\n';
    }
    return 0;
}