Pagini recente » Cod sursa (job #1297059) | Istoria paginii runda/16_februarie_simulare_oji_2024_clasa_9 | Cod sursa (job #2496005) | Cod sursa (job #1497126) | Cod sursa (job #1707566)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int x, y, z, t;
int n, m;
int s[250003][22];
int main()
{
fin >> n >> m;
for ( int i = 1; i <= n; i++ )
{
fin >> s[i][0];
}
for ( int j = 1; j <= 18; j++ )
for ( int i = 1; i <= n; i++ )
s[i][j] = s[s[i][j-1]][j-1];
for ( int i = 1; i <= m; i++ )
{
fin >> x >> y;
while(y > 0)
{
for ( t = 0, z = 1; z * 2 <= y; ++t)
z = z * 2;
x = s[x][t];
y = y - z;
}
fout << x << '\n';
}
fin.close();
fout.close();
return 0;
}