Pagini recente » Cod sursa (job #1566095) | Cod sursa (job #2057940) | Statistici Cristian Cringasu (cristiancringasu) | Cod sursa (job #1574648) | Cod sursa (job #1574249)
#include<fstream>
using namespace std;
int n, m, i, j, x, y, p, q;
int a[19][250005], pt[250005];
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int main(){
fin>> n >> m;
for(i = 1; i <= n; i++){
fin>> a[0][i];
}
for(i = 1; (1 << i) <= n; i++){
for(j = 1; j <= n; j++){
if(a[i - 1][j] != 0){
a[i][j] = a[i - 1][ a[i - 1][j] ];
}
}
}
for(i = 2; i <= n; i++){
pt[i] = pt[i / 2] + 1;
}
for(i = 1; i <= m; i++){
fin>> q >> p;
while(p != 0){
q = a[ pt[p] ][q];
p -= (1 << pt[p]);
}
fout<< q <<"\n";
}
return 0;
}