Pagini recente » Cod sursa (job #1188394) | Cod sursa (job #1962266) | Cod sursa (job #2087846) | Rating Dobroiu Raluca (Dobroiu_Raluca_322CC) | Cod sursa (job #1197718)
#include <fstream>
#include <algorithm>
#include <cstring>
using namespace std;
ifstream cin("stramosi.in");
ofstream cout("stramosi.out");
typedef struct celula {
long nod;
celula *next;
}*lista;
void add(long val, lista &p)
{
lista r= new celula;
r->nod=val;
r->next=p;
p=r;
}
int dfs ( long val,lista lda[],long a, long &stramos)
{
++stramos;
if (stramos==a) cout<<val<<"\n";
else
if (stramos<a) {
for (lista r=lda[val];r;r=r->next)
if (r->nod!=0) dfs(r->nod,lda,a,stramos);
else cout<<0<<"\n";
}
}
int main()
{
lista lda[30005];
long i,n,t,a,b,nr;
cin>>n>>t;
for (i=1;i<=n;++i) {
cin>>a;
add(a,lda[i]);
}
for (i=1;i<=t;++i){
cin>>a>>b;
long stramos=-1;
dfs(a,lda,b,stramos);
}
return 0;
}