Pagini recente » Cod sursa (job #3142108) | Cod sursa (job #1112308) | Cod sursa (job #3195356) | infoarena - comunitate informatica, concursuri de programare | Cod sursa (job #641670)
Cod sursa(job #641670)
#include <fstream>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
const int logmax = 18 , maxn = 250150;
int A[logmax][maxn] , lg[maxn] , N , M , Q , P;
int main()
{
fin>>N>>M;
for(int i=1;i<=N;++i)
fin>>A[0][i] , lg[i+1] = lg[(i+1)/2] + 1;
lg[N+1] = 0;
for(int j = 1;j<logmax;++j)
for(int i = 1;i<=N;++i)
A[j][i] = A[j-1][A[j-1][i]];
for(;M;M--)
{
fin>>Q>>P;
for(int l=lg[P];P;)
Q = A[l][Q] , P-=(1<<l) , l = lg[P];
fout<<Q<<'\n';
}
return 0;
}