Cod sursa(job #726617)

Utilizator ursu-valiJerdea Florin ursu-vali Data 27 martie 2012 12:50:42
Problema Stramosi Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<stdio.h>
#include<vector>
#define infile "stramosi.in"
#define outfile "stramosi.out"
#define nmax 250002
using namespace std;

int a[nmax];
int n,m;
vector<int> g[nmax];

void rsolve()
{
	int x,p;
	scanf("%d %d",&n,&m);
	for(int i=1;i<=n;i++)
		scanf("%d ",&a[i]);
	for(int i=1;i<=n;++i)
	{
		x=a[i];
		while(x)
		{
			g[i].push_back(x);
			x=a[x];
		}
	}
	for(int i=1;i<=m;i++)
	{
		scanf("%d %d",&x,&p);
		if(g[x].size()<p)
			printf("0\n");
		else
			printf("%d\n",g[x][p-1]);
	}
}

int main()
{
	freopen(infile,"r",stdin);
	freopen(outfile,"w",stdout);
	rsolve();
	fclose(stdin);
	fclose(stdout);
	return 0;
}