Pagini recente » Cod sursa (job #922281) | Cod sursa (job #1845282) | Cod sursa (job #1920854) | Cod sursa (job #2910094) | Cod sursa (job #371917)
Cod sursa(job #371917)
#include <iostream>
#include <fstream>
using namespace std;
int main() {
fstream f1, f2;
int stra[19][250001], n, m, k, p, i, j, f;
f1.open("stramosi.in", ios::in);
f1>>n>>m;
for(i=1; i<=n; i++) {
f1>>p;
if(p==0) {
for(j=0; j<=18; j++) {
stra[j][i]=0;
}
}
else {
stra[0][i]=p;
for(j=1; j<=18; j++) {
stra[j][i]=stra[j-1][stra[j-1][i]];
}
}
}
f2.open("stramosi.out", ios::out);
for(i=1; i<=m; i++) {
f1>>p>>k;
j=0; f=p;
while(k) {
if(k%2==1) {
f=stra[j][f];
}
j++; k=k/2;
}
f2<<f<<endl;
}
f1.close(); f2.close();
return 0;
}