Pagini recente » Cod sursa (job #797040) | Cod sursa (job #57968) | Cod sursa (job #951197) | Istoria paginii utilizator/laura_cozma | Cod sursa (job #1800560)
#include<fstream>
#define NMax 250000
#define LOG 18
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int N,Q;
int str[LOG + 5][NMax + 5];
void Read()
{
fin>>N>>Q;
for(int i = 1 ; i <= N ; ++i)
fin>>str[0][i];
}
void Precalculate()
{
for(int i = 1 ; i <= LOG ; i++)
for(int j = 1 ; j <= N ; j++)
str[i][j] = str[i-1][str[i-1][j]];
}
void Answer()
{
while(Q--)
{
int x,y; fin>>x>>y;
for(int i = LOG ; i >= 0 ; i--)
if( y & (1 << i) )
x = str[i][x];
fout<<x<<"\n";
}
}
int main()
{
Read();
Precalculate();
Answer();
fin.close();
fout.close();
return 0;
}