Pagini recente » Cod sursa (job #60448) | Cod sursa (job #2926164) | Cod sursa (job #2089741) | Cod sursa (job #2288833) | Cod sursa (job #1848025)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("stramosi.in");
ofstream out("stramosi.out");
int a[20][250001];
int stramos(int x, int p) {
int aux = x;
for (int i=0; (1<<i) <= p; ++i) {
if((1<<i)&p) {
aux = a[i][aux];
}
}
return aux;
}
int main() {
int N, M;
in>>N>>M;
for (int i=1; i<= N; ++i) {
in>>a[0][i];
}
for (int k=1; k<=18; ++k) {
for (int i=1; i<=N; ++i) {
a[k][i] = a[k-1][a[k-1][i]];
}
}
int s, p;
for (int k=1; k<=M; ++k) {
in>>s>>p;
out<<stramos(s,p)<<endl;
}
// for (int i=0; i<=N; i++) {
// for (int j=1; j<=N; j++) {
// cout<<a[i][j]<<" ";
// }
// cout<<endl;
// }
return 0;
}