Pagini recente » Cod sursa (job #1365843) | Cod sursa (job #92579) | Cod sursa (job #152067) | Cod sursa (job #1337175) | Cod sursa (job #2956546)
#include <fstream>
using namespace std;
ifstream cin("stramosi.in");
ofstream cout("stramosi.out");
int M[18][250000];
int main()
{
int n , m;
cin >> n >> m;
int i;
for(i = 1; i <= n; i ++)
{
cin >> M[0][i];
}
int j;
for(i = 1; (1 << i) <= n; i ++)
{
for(j = 1; j <= n; j ++)
{
int a = M[i-1][j];
M[i][j] = M[i - 1][a];
}
}
int l;
int p , q;
int str = 0;
for(l = 1; l <= m; l ++)
{
cin >> q >> p;
str = q;
for(i = 0; (1 << i) <= p; i ++)
{
if(p& (1 << i))
{
str = M[i][str];
}
}
cout << str << '\n';
}
return 0;
}