Cod sursa(job #348711)

Utilizator serbanlupulupulescu serban serbanlupu Data 16 septembrie 2009 17:15:51
Problema Stramosi Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <iostream>
#include <fstream>
#include <cstdio>
#include <cstdlib>

using namespace std;

int v[10][250001];
int nr_v;
int pos;

void solve()
{
	freopen("stramosi.in","r",stdin);
	freopen("stramosi.out","w",stdout);

	scanf("%d %d",&nr_v,&pos);

	for (int i=1; i<=nr_v; ++i)
		scanf("%d",&v[1][i]);

	for (int j=2; j<=8; ++j)
		for (int i=1; i<=nr_v; ++i)
			v[j][i]=v[1][v[j-1][i]];

	int p,q;

	for (int i=1; i<=pos; ++i)
	{
		scanf("%d %d",&p,&q);
		if (p<=8)
			printf("%d\n",v[p][q]);
		else
		{
			while (p>8)
			{
				q=v[8][q];
				p=p-8;
			}
			printf("%d\n",v[p][q]);
		}
	}
	fclose(stdin);
	fclose(stdout);
}

int main()
{
	solve();
	return 0;
}