Pagini recente » Cod sursa (job #2604966) | Cod sursa (job #1336247) | Cod sursa (job #391738) | Cod sursa (job #2451251) | Cod sursa (job #1696879)
#include <fstream>
#include <iostream>
int v[250001][19],n,m,i,j,k,l,sol;
using namespace std;
fstream f,g;
int main()
{
f.open("stramosi.in",ios_base::in);
g.open("stramosi.out",ios_base::out);
f>>n>>m;
for(i=1;i<=n;i++)f>>v[i][0];
for(i=1;i<=18;i++)for(j=1;j<=n;j++)v[j][i]=v[v[j][i-1]][i-1];
for(i=1;i<=m;i++)
{
f>>sol>>k;
//sol id, k grad stramos
for(j=0,l=1;l<=k;j++,l*=2)if(l&k)sol=v[sol][j];
/*
j=0;
while(k)
{
if(k%2)sol=v[sol][j];
j++;
k/=2;
}
*/
g<<sol<<'\n';
}
}