Cod sursa(job #1202141)

Utilizator azkabancont-vechi azkaban Data 26 iunie 2014 22:32:50
Problema Stramosi Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <fstream>
using namespace std;
ifstream cin("stramosi.in");
ofstream cout("stramosi.out");
typedef struct celula {
                        long long nod;
                        celula *next;
                       }*lista;

lista lda[300013];
long long i,n,t,a,b,nr;   
                     
void add(long long val, lista &p)
{
  lista r= new celula;
  r->nod=val;
  r->next=p;
  p=r;  
} 
 
void dfs ( long long val,long long a, long 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,a,stramos);
                                  else cout<<0<<"\n";
                 } 
}
int main()
{
  
  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 long stramos=-1;
                     dfs(a,b,stramos);
                    }
 return 0;
}