Cod sursa(job #2612795)

Utilizator andreitudorpAndrei Tudor Popescu andreitudorp Data 9 mai 2020 12:46:28
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <fstream>

using namespace std;

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

#define MAXN 2500005
#define P 18

int v[100][150];
int d[P][MAXN];

int main()
{

    int n, t;
	cin >> n >> t;

	for (int i = 1; i <= n; i++)
		cin >> d[0][i];

	for (int i = 1; i < P; i++)
		for (int j = 1; j <= n; j++)
			d[i][j] = d[i - 1][d[i - 1][j]];

	int ans = 0;
	int x, y, k = 0;
	while(t--)
    {
        k = 0;
		cin >> x >> y;

		ans = x;

		while(y)
        {
			if (y % 2 != 0)
                ans = d[k][ans];
			y /= 2;
			k++;
		}

		cout << ans << "\n";
	}

	return 0;
}