Pagini recente » Cod sursa (job #3177629) | Cod sursa (job #1244748) | Cod sursa (job #2897839) | Cod sursa (job #291720) | Cod sursa (job #931925)
Cod sursa(job #931925)
#include <fstream>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int n,m,x,y,lg[250001],query[17][250001];
int main()
{
fin>>n>>m;
for(int i = 1; i<= n; i++ )
{
fin>>query[0][i];
if(i>1) lg[i]=1+lg[i>>1];
}
for(int j = 1; (1<<j) <= n; j++ )
for(int i = 1; i<= n; i++ )
query[j][i] = query[j-1][query[j-1][i]];
while(m--)
{
fin>>x>>y;
while(y)
x = query[lg[y]][x], y -= (1<<lg[y]);
fout<<x<<'\n';
}
fin.close();
fout.close();
return 0;
}