Pagini recente » Cod sursa (job #2539246) | Cod sursa (job #932534) | Cod sursa (job #875617) | Cod sursa (job #630411) | Cod sursa (job #2754172)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
int nrS[18][250001];
int main()
{
int n,m;
f>>n>>m;
for(int i=1; i<=n; i++)
f>>nrS[0][i];
int temp=1;
int linMax=0;
while(temp<=n)
{
temp*=2;
linMax++;
}
for(int i=1;i<linMax;i++)
for(int j=1; j<=n; j++)
nrS[i][j]=nrS[i-1][nrS[i-1][j]];
for(int i=0; i<m; i++)
{
int a,b;
f>>a>>b;
while(b!=0)
{
int linieSparc=1;
int elemParcurse=0;
while(linieSparc*2<=b)
{
linieSparc*=2;
elemParcurse++;
}
a=nrS[elemParcurse][a];
b-=linieSparc;
}
g<<a<<"\n";
}
}