Cod sursa(job #200495)

Utilizator IrnukIrina Grosu Irnuk Data 24 iulie 2008 12:47:19
Problema Stramosi Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
/*stramosi*/

#include<fstream.h>

long a[2][250001],n,m,loc,p,q;

ifstream fin("stramosi.in");
ofstream fout("stramosi.out");

void citire()
{
	long i;
	fin>>n>>m;
	for(i=1;i<=n;i++)
	{
		fin>>a[0][i];
		if(a[0][i]==0)
			a[1][i]=1;
		else
			a[1][i]=a[1][a[0][i]]+1;
	}
}

/*void afisare()
{
	long i;
	for(i=1;i<=n;i++)
		cout<<i<<"      "<<a[0][i]<<" "<<a[1][i]<<'\n';
}
*/
int cauta()
{
	loc=a[0][q];
	while(p!=1&& loc!=0)
	{
		loc=a[0][loc];
		p--;
	}
	return loc;
}
int main()
{
	long i;
	citire();
//	afisare();
	for(i=0;i<m;i++)
	{
		fin>>q>>p;
		if(a[1][q]-p<1)
			fout<<"0\n";
		else
			fout<<cauta()<<'\n';
	}
	fout.close();
	return 0;
}