Pagini recente » Cod sursa (job #2071895) | Cod sursa (job #418992) | Cod sursa (job #1532527) | Cod sursa (job #143873) | Cod sursa (job #851067)
Cod sursa(job #851067)
#include <fstream>
using namespace std;
int n,m, str[250010][19] ;
int main()
{ ifstream f1("stramosi.in");
ofstream f2("stramosi.out");
f1>>n>>m;
int i,j,c,p1, p,q;
for (i=1; i<=n; i++) f1>>str[i][0];
for (i=1; i<=n; i++)
{ for (p=1, c=str[i][0], j=1; c ; c=str[c][0], j++ )
if (j==(1<<p) ) str[i][p++]=c;
}
for (i=1; i<=m; i++)
{ f1>>q>>p;
for (j=p, c=q; j>0 && c; )
{ p1=0;
while (1<<(p1+1)<=j) p1++;
c=str[c][p1];
j-= 1<<p1; }
f2<<c<<"\n";
}
f1.close();
f2.close();
return 0;
}