Pagini recente » Cod sursa (job #1669597) | Cod sursa (job #3319762) | Cod sursa (job #578714) | Cod sursa (job #3345444) | Cod sursa (job #3349058)
#include <bits/stdc++.h>
using namespace std;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
int str[22][300009];
int query (int nod, int niv)
{
int ans=nod;
for (int bit=20; bit>=0; bit--)
{
int p=(1<<bit);
if (niv&p)
ans=str[bit][ans];
}
return ans;
}
signed main ()
{
int n, q;
f >> n >> q;
for (int i=1; i<=n; i++)
f >> str[0][i];
for (int niv=1; (1<<niv)<=n; niv++)
{
for (int i=1; i<=n; i++)
str[niv][i]=str[niv-1][str[niv-1][i]];
}
while (q--)
{
int nod, niv;
f >> nod >> niv;
g << query (nod, niv) << '\n';
}
}