Cod sursa(job #342144)

Utilizator vdobrotaDobrota Valentin Eugen vdobrota Data 20 august 2009 18:06:22
Problema Stramosi Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include<stdio.h>
#define dim 250001
int main()
{
	freopen("stramosi.in","r",stdin);
	freopen("stramosi.out","w",stdout);
	long int i,n,m,a[dim],p,q,b[dim],c[dim],pp,qq;
	scanf("%ld%ld",&n,&m);
	for(i=1;i<=n;i++) {
		scanf("%ld",&a[i]);
		b[i]=0;
		}
	for(i=0;i<m;i++) {
		scanf("%ld%ld",&q,&p);
		if(q<=n) {
		qq=q;
		pp=p;
		if(b[q]&&(b[q]<=p)) {
			p=b[q];
			q=c[q];
			}
		while(q&&p--)
			q=a[q];
		printf("%ld\n",q);
		if(b[qq]<pp) {
			b[qq]=pp;
			c[qq]=q;
		}
		}
		else
		printf("0\n");
	}
	return 0;
}