Pagini recente » Cod sursa (job #625375) | Istoria paginii runda/simulare_de_oni_2 | Cod sursa (job #884163) | Cod sursa (job #896415) | Cod sursa (job #2766333)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int n, m;
int stramosi[250250][25];
int main()
{
fin >> n >> m;
for(int i = 1; i <= n; i ++)
{
fin >> stramosi[i][0];
}
for(int i = 1; i <= n; i ++)
{
for(int j = 1; (1 << j) <= n; j ++)
{
stramosi[i][j] = stramosi[stramosi[i][j-1]][j-1];
}
}
while(m--)
{
/// "Care este al P-lea stramos al membrului cu numarul Q?".
int p, q;
fin >> q >> p;
int ans = q;
for(int i = 0; (1 << i) <= p; i ++)
{
if((p & (1 << i)) != 0)
{
ans = stramosi[ans][i];
}
}
fout << ans << '\n';
}
}