Cod sursa(job #416774)

Utilizator cosmyoPaunel Cosmin cosmyo Data 13 martie 2010 14:59:49
Problema Stramosi Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<stdio.h>
#include<deque>
#include<list>
#include<vector>
#define NMAX 250001
#define in freopen("stramosi.in","r",stdin)
#define out freopen("stramosi.out","w",stdout)
using namespace std;
typedef list<long> ST;
typedef ST::iterator IT;
ST S[NMAX];
long n,m;
long df(long k,long lg,long p)
{if(lg==p)
	return k;
  else
  if(S[k].empty())
    return 0;
else  
  
	return df(S[k].front(),lg+1,p);
}
int main()
{in;
 out;
 scanf("%ld %ld",&n,&m);
 long i,x,q,p;
  for(i=1;i<=n;++i)
  {scanf("%ld",&x);
    if(x>0)
     {S[i].push_back(x);
	 }
  }
 IT it;
 for(;m;--m)
 {scanf("%ld %ld",&q,&p);
  printf("%ld \n",df(q,0,p));
 }
 return 0;
}