Pagini recente » Cod sursa (job #2636785) | Cod sursa (job #3209650) | Cod sursa (job #779149) | Cod sursa (job #174160) | Cod sursa (job #1354222)
#include <fstream>
#include <vector>
using namespace std;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
int n,m,st[250001][19],i,x,y,j,lg[250001];
int gasire(int nc,int y)
{
while(y>0)
{
nc=st[nc][lg[y]];
y=y-(1<<lg[y]);
}
return nc;
}
int main()
{
f>>n>>m;
for (i=1;i<=n;i++)
f>>st[i][0];
for (j=1;(1<<j)<=n;j++)
for (i=1;i<=n;i++)
st[i][j]=st[st[i][j-1]][j-1];
for (i=2;i<=n;i++)
lg[i]=lg[i/2]+1;
for (i=1;i<=m;i++)
{
f>>x>>y;
g<<gasire(x,y)<<'\n';
}
return 0;
}