Pagini recente » Clasament simulare_11.28.2018 | Cod sursa (job #1504932) | Cod sursa (job #1187908) | Cod sursa (job #2368938) | Cod sursa (job #2363700)
#include<bits/stdc++.h>
using namespace std;
#define NMAX 250000
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int n,m;
int s[NMAX][20];
int query(int x,int g)
{
int nr=0;
int ans=x;
while(g)
{
if(g&(1<<nr))
{
g-=(1<<nr);
ans=s[ans][nr];
}
nr++;
}
return ans;
}
int main()
{
fin>>n>>m;
for(int i=1;i<=n;i++)
{
fin>>s[i][0];
}
int lg2=32-__builtin_clz(n);
for(int j=1;j<lg2;j++)
for(int i=1;i<=n;i++)
s[i][j]=s[s[i][j-1]][j-1];
for(int i=0;i<m;i++)
{
int q,g;
fin>>q>>g;
fout<<query(q,g)<<'\n';
}
return 0;
}