Cod sursa(job #457648)

Utilizator mihai995mihai995 mihai995 Data 20 mai 2010 20:22:31
Problema Stramosi Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.5 kb
#include <fstream>
using namespace std;
int v[20][1<<18];

ifstream in("stramosi.in");
ofstream out("stramosi.out");

int str(int p,int q)
{
    int k=0;
	while (1<<k<=p)
		k++;
    if (v[k][q]==0)
		return 0;
    if (1<<k==p)
		return v[k][q];
    return str(p-k,v[k][q]);
}

int main()
{
	int n,m,p,q,i,j;
	in>>n>>m;
	for (i=1;i<=n;i++)
		in>>v[0][i];
	for (i=1;i<=18;i++)
		for (j=1;j<=n;j++)
			v[i][j]=v[i-1][v[i-1][j]];
	while (m--)
	{
		in>>p>>q;
		out<<str(p,q)<<"\n";	
	}
	return 0;
}