Cod sursa(job #423374)

Utilizator darrenRares Buhai darren Data 23 martie 2010 20:01:16
Problema Stramosi Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<cstdio>
#include<vector>
using namespace std;

void read();
void find(int x, int y, int act);
void write(int x);

int s[300005];

int main() {
	freopen("stramosi.out","w",stdout);
	read();
	return 0;
}

void read() {
	freopen("stramosi.in", "r", stdin);
	int n, m, aux;
	int i, q, p;
	scanf("%d%d", &n, &m);
	for (i = 1; i <= n; ++i) {
		scanf("%d", &aux);
		s[i] = aux;
	}
	for (i = 1; i <= m; ++i) {
		scanf("%d%d", &q, &p);
		find(q, p, 1);
	}
}

void find(int x, int y, int act) {
	if (s[x] == 0) { write(s[x]); return; }
	if (act == y) { write(s[x]); return; }
	find(s[x], y, act + 1);
}

void write(int x) {
	printf("%d\n",x);
}