Pagini recente » Cod sursa (job #1344190) | Cod sursa (job #1052024) | Cod sursa (job #442994) | Cod sursa (job #3150756) | Cod sursa (job #1574551)
#include<fstream>
#include<cmath>
#define NMAX 250002
using namespace std;
int a[19][NMAX];
int main()
{
ifstream f("stramosi.in");
ofstream g("stramosi.out");
int n, m, i, j, q, p;
f >> n >> m;
for (i = 1; i <= n; i++)
{
f >> a[0][i];
}
for (i = 1; (1<<i) <= n; i++)
{
for (j = 1; j <= n; j++)
{
a[i][j] = a[i - 1][a[i - 1][j]];
}
}
while (f >> q >> p)
{
int l = log2(p), nod = q, dif = p - (1<<l);
do
{
nod = a[l][nod];
l --;
} while (l > 0);
if (dif)
{
g << a[dif - 1][nod] << "\n";
}
else
{
g << nod << "\n";
}
}
f.close();
g.close();
}