Cod sursa(job #1547502)

Utilizator kassay_akosKassay Akos kassay_akos Data 9 decembrie 2015 17:05:55
Problema Stramosi Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <iostream>
#include <fstream>
#include <string.h>
//#include <vector>
//#include <queue>
//#include <algorithm>

using namespace std;
const int nmax = 250002;
int n,v[nmax][2];

int main(){
	freopen("stramosi.in", "r", stdin);
	freopen("stramosi.out", "w", stdout);
	int m;
	scanf("%d %d", &n, &m);
	v[0][0] = 0;
	for (int i = 1; i <= n; i++)
		scanf("%d", &v[i][0]);
	
	for (int i = 1; i <= n; i++) {
		int x = i;
		for (int j = 10; j--;) x = v[x][0];
		v[i][1] = x;
	}


	int a, b;
	for (; m--;){
		scanf("%d %d", &a, &b);

		while (b != 1 && v[a] != 0) {
			if (b > 10) {
				b = -10;
				a = v[a][1];
			}
			else {
				b--;
				a = v[a][0];
			}
		}

		printf("%d\n", v[a]);
	}
		
	fclose(stdin);
	fclose(stdout);
	return 0;
}