Pagini recente » Cod sursa (job #1589383) | Cod sursa (job #457719) | Cod sursa (job #2647102) | Istoria paginii runda/gigi_becali | Cod sursa (job #1707558)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
const int Nmax = 250005;
int n, m;
int s[Nmax][22];
int main()
{
int x, y, z, t;
fin >> n >> m;
for ( int i = 1; i <= n; i++ )
{
fin >> x;
s[i][0] = x;
}
for ( int j = 0; j <= 17; j++ )
for ( int i = 1; i <= n; i++ )
s[i][j+1] = s[s[i][j]][j];
for ( int i = 1; i <= m; i++ )
{
fin >> x >> y;
for ( z = 0; (1 << z) <= y; z++)
{
if ( (1 << z) & y )
{
x = s[x][z];
}
}
fout << x << '\n';
}
fin.close();
fout.close();
return 0;
}