Pagini recente » Cod sursa (job #3126969) | Cod sursa (job #1294732) | Cod sursa (job #2335746) | Cod sursa (job #2230495) | Cod sursa (job #1185812)
#include<fstream>
#include<cmath>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int stramos[18][250001];
int n, m;
int main() {
int i, j, aux, p, q;
fin >> n >> m;
for(i = 1; i <= n; i++) {
fin >> stramos[0][i]; // citeste stramosul de rang 2^0
}
aux = (int)log2(n) + 1;
for(i = 1; i < aux; i++) {
for(j = 1; j <= n; j++) {
stramos[i][j] = stramos[i-1][stramos[i-1][j]];
}
}
for(i = 0; i < m; i++) {
fin >> q >> p;
j = -1;
while(p) {
j++;
if(p & 1 == 1) {
q = stramos[j][q];
}
p >>= 1;
}
fout << q << "\n";
}
return 0;
}