Pagini recente » Cod sursa (job #2334705) | Cod sursa (job #1003766) | Cod sursa (job #1566120) | Cod sursa (job #50831) | Cod sursa (job #2754985)
#include <bits/stdc++.h>
using namespace std;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
int arbore[50][250001]= {0}, N, M, persoana, nr;
void create()
{
for (int i = 1; pow(2,i) <= N; i++)
{
for (int j = 1; j <= N; j++)
{
arbore[i][j] = arbore[i - 1][arbore[i - 1][j]];
}
}
}
int search_stramos(int persoana, int nr)
{
int i = 0;
while (nr)
{
if (nr % 2 == 1)
{
persoana = arbore[i][persoana];
}
nr /= 2;
i++;
}
return persoana;
}
int main()
{
f>>N>>M;
for (int i = 0; i <= N; i++)
{
f>>persoana;
arbore[0][i] = persoana;
}
create();
for (int i = 0; i <= M; i++)
{
f>>persoana>>nr;
g<<search_stramos(persoana, nr)<<'\n';
}
return 0;
}