Pagini recente » Rating Nicolae Andrei (forta_dinamo) | Cod sursa (job #1190139) | Cod sursa (job #1729326) | Cod sursa (job #315633) | Cod sursa (job #2713766)
#include <bits/stdc++.h>
#define nlim 250005
using namespace std;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
int n, m, q, p, v[nlim][20], l;
int stramos(int x, int y) {
for (int i = 20; i >= 0; --i)
if ((1 << i) & y) x = v[x][i];
return x;
}
int main()
{
f >> n >> m;
l = ceil(log2(n));
for (int i = 1; i <= n; ++i)
f >> v[i][0];
for (int j = 1; j <= l; ++j)
for (int i = 1; i <= n; ++i)
v[i][j] = v[v[i][j-1]][j-1];
while (m) {
--m;
f >> q >> p;
g << stramos(q, p) << '\n';
}
}