Pagini recente » Cod sursa (job #2719040) | Cod sursa (job #1710893) | Cod sursa (job #1633124) | Cod sursa (job #1874415) | Cod sursa (job #863889)
Cod sursa(job #863889)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int n, m;
int g[18][250001];
void Query( int nod, int d );
int main()
{
int x, y;
fin >> n >> m;
for( int i = 1; i <= n; ++i )
fin >> g[0][i];
for( int i = 1; i <= 17; ++i )
for( int j = 1; j <= n; ++j )
g[i][j] = g[i-1][g[i-1][j]];
for( int i = 1; i <= m; ++i )
{
fin >> x >> y;
Query( x, y );
}
fin.close();
fout.close();
return 0;
}
void Query( int nod, int d )
{
if( d == 0 )
{
fout << nod << '\n';
return;
}
int log = 0;
int i = 1;
while( i*2 <= d )
{
i *= 2;
log++;
}
Query( g[log][nod], d - i );
}