Pagini recente » Cod sursa (job #1633755) | Cod sursa (job #809713) | Solutii preONI 2007, Runda 3 | Cod sursa (job #1490332) | Cod sursa (job #1354224)
#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];
void gasire(int nc,int y)
{
while(y>0)
{
nc=st[nc][lg[y]];
y=y-(1<<lg[y]);
}
g<<nc<<'\n';
}
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;
gasire(x,y);
}
return 0;
}