Cod sursa(job #578495)

Utilizator tinkyAndrei Ilisei tinky Data 11 aprilie 2011 12:34:21
Problema Stramosi Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include<fstream>
#include<vector>
#define pb push_back
using namespace std;
int v[250010],n,m;
vector<int> s[250010];
int str(int x,int p)
{
	while (p&&x)
	{
		x=v[x];
		p--;
	}
	return x;
}
void calc ()
{
	int i,x;
	for (i=1;i<=n;i++)
	{
		x=v[i];
		while (x)
		{
			s[i].pb(x);
			x=v[x];
		}
	}
}
int main()
{
	int i,j,x,y,p;
	ifstream in("stramosi.in");
	
	in>>n>>m;
	for(i=1;i<=n;i++)
		in>>v[i];
	calc();
	
	ofstream out("stramosi.out");
	for (i=1;i<=m;i++)
	{
		in>>x>>p;
		if (s[x].size()<p)
			out<<0;
		else
			out<<s[x][p-1];
		out<<'\n';
	}
	
}