Pagini recente » Cod sursa (job #88595) | Cod sursa (job #402345) | Cod sursa (job #2469404) | Cod sursa (job #939137) | Cod sursa (job #1383291)
#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;
}