Cod sursa(job #1197718)

Utilizator azkabancont-vechi azkaban Data 13 iunie 2014 15:32:20
Problema Stramosi Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#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;
}