Pagini recente » Cod sursa (job #1615866) | Cod sursa (job #700032) | Cod sursa (job #1807372) | Cod sursa (job #124693) | Cod sursa (job #2568808)
#include <fstream>
#include <vector>
#include <cmath>
#define nmax 250001
using namespace std;
int stramosi[20][nmax];
ifstream cin("stramosi.in");
ofstream cout("stramosi.out");
int main() {
int n, m, i, x, j,p,q;
long long int t;
cin >> n >> m;
for(i = 1; i <= n; ++i)
{
cin >> stramosi[0][i];
}
for(i = 1; i <= 19; ++i)
for(j = 1; j <= n; ++j)
stramosi[i][j] = stramosi[i - 1][stramosi[i-1][j]];
for(i = 1; i <= 19; ++i)
{
for(j = 1; j <= n; ++j)
cout << stramosi[i][j] << ' ';
cout << '\n';
}
for(i = 1; i <= m; ++i){
fin >> q >> p;
for(j = 0; t = (1 << j), t<= p; ++j)
if(t & p)
q = stramosi[j][q];
cout << q << '\n';}
return 0;
}