Cod sursa(job #124195)

Utilizator a7893Nae Mihai a7893 Data 18 ianuarie 2008 14:52:17
Problema Stramosi Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include<stdio.h>
#define N 260000
#define M 310000
int n,m,v[N],k1;
char sir[N],bn;
struct vec
{
	int x,nrp;
}p[M];
void read()
{
	int i,x,ind;
	scanf("%d%d",&n,&m);
	/*for(i=1;i<=n;++i)
		scanf("%d",&v[i]);*/
	scanf("%c",&bn);
	fgets(sir, N, stdin), x = ind = 0;
	while(k1<=n)
	{
		for(; sir[ind] >= '0' && sir[ind] <= '9'; ind++)
			x = x*10+(sir[ind]-'0');
		/*for(int i=1;i<=m;i++)
			scanf("%d",&nr[i]);*/
		v[++k1]=x;
		++ind;
		x=0;
	}
	for(i=1;i<=m;++i)
		scanf("%d%d",&p[i].x,&p[i].nrp);
}
void apel(int x,int nrp,int nr)
{
	/*if(nr==nrp)
	{
		printf("%d\n",x);
		return;
	}
	else
		apel(v[x],nrp,++nr);*/
	while(nr<nrp)
	{
		x=v[x];
		nr++;
	}
	printf("%d\n",x);
}
void solve()
{
	int i;
	for(i=1;i<=m;++i)
		apel(p[i].x,p[i].nrp,0);
}
int main()
{
	freopen("stramosi.in","r",stdin);
	freopen("stramosi.out","w",stdout);
	read();
	solve();
	return 0;
}