Pagini recente » Cod sursa (job #35489) | Cod sursa (job #1266723) | Cod sursa (job #2764629) | Cod sursa (job #2940702) | Cod sursa (job #1910154)
#include<fstream>
#include<vector>
#include<string>
#define modulo 666013
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
const int NMAX = 250005;
string sir;
int i, n, k, j,contor,st,dr,sol,x,y,m,p,q,nod;
int stramos[25][NMAX];
//stramos[i][j] - al 2^i -lea stramos al nodului j
void build()
{
int i ,j;
for(i = 1; (1 << i) <= NMAX; i++)
{
//fout << (1 << i) <<"\n";
for(j = 1; j <= n; j++)
{
stramos[i][j] = stramos[i - 1][stramos[i - 1][j]];
}
}
}
int main()
{
fin >> n >> m;
for(i = 1; i <= n ;i++)
{
fin >> stramos[0][i];
}
build();
for(i = 1; i <= m ;i++)
{
fin >> nod >> p;
int k = (1 << 17), j = 17;
while(p)
{
if(p >= k)
{
p = p - k;
nod = stramos[j][nod];
}
j--;
k = k / 2;
}
fout << nod << "\n";
//fout << k <<"\n";
}
for(i = 1; (1 << i) <= NMAX; i++)
{
//fout << (1 << i) <<"\n";
}
}