Pagini recente » Cod sursa (job #457918) | Cod sursa (job #651344) | Cod sursa (job #2068056) | Cod sursa (job #1314944) | Cod sursa (job #1619943)
#include <fstream>
#define LMAX 18
#define NMAX 250007
using namespace std;
ifstream cin("stramosi.in");
ofstream cout("stramosi.out");
int n, m, Dp[LMAX][NMAX];
int main(){
cin >> n >> m;
for(int i = 1; i <= n; ++i)
cin >> Dp[0][i];
for(int i = 1; (1 << i) <= n; ++i)
for(int j = 1; j <= n; ++j)
Dp[i][j] = Dp[i - 1][Dp[i - 1][j]];
for(int i = 1; i <= m; ++i){
int a, b;
cin >> a >> b;
for(int j = 0; (1 << j) <= b; ++j)
if((1 << j) & b)
a = Dp[j][a];
cout << a << "\n";
}
return 0;
}