Pagini recente » Diferente pentru problema/heist intre reviziile 17 si 18 | Atasamentele paginii Parcurgere DFS - componente conexe | Diferente pentru problema/hoata2 intre reviziile 25 si 24 | un_concurs_ce_concurs | Cod sursa (job #2246651)
#include<iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
int N,M,x,y,d[250001][18],p;
int main()
{ f>>N>>M;
for(int i=1;i<=N;i++)
{
f>>d[i][0];x=d[i][0];
if(x)
for(int j=0;j<=17;j++)
{
d[i][j+1]=d[x][j];
x=d[x][j];
}
}
for(int i=1;i<=M;i++)
{
f>>x>>y; p=x;
for(int j=18;j>=0;j--)
if(y&(1<<j))
p=d[p][j];
g<<p<<"\n";
}
return 0;
}