Cod sursa(job #3207627)

Utilizator alexdmnDamian Alexandru alexdmn Data 26 februarie 2024 17:08:50
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <fstream>

using namespace std;
int v[250005], mem[100][250005];
int jump(int x, int dist)
{
	for(int i=0;i<20;i++)
	{
		if((dist>>i) & 1)
			x=mem[i][x];
	}

	return x;
}
int main()
{
	ifstream cin("stramosi.in");
	ofstream cout("stramosi.out");

    int n, m, a, b;
    cin>>n>>m;

    for(int i=1;i<=n;i++)
		{
			cin>>v[i];
		}

		for(int i=0;i<20;i++)
		{
			for(int j=1;j<=n;j++)
			{
				if(i==0)
					mem[i][j]=v[j];
				else
					mem[i][j]=mem[i-1][mem[i-1][j]];
			}
		}

		for(int i=0;i<m;i++)
		{
			cin>>a>>b;
			cout<<jump(a, b)<<'\n';
		}

    return 0;
}