Cod sursa(job #2958964)
| Utilizator | Data | 29 decembrie 2022 14:12:52 | |
|---|---|---|---|
| Problema | Stramosi | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.62 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int n, q, d[20][250003];
int main()
{
int i, j, x, p;
fin >> n >> q;
for (i = 1; i <= n; i++)
fin >> d[0][i];
for (i = 1; i <= 18; i++)
for (j = 1; j <= n; j++)
d[i][j] = d[i - 1][d[i - 1][j]];
while (q--)
{
fin >> x >> p;
i = 0;
while (p > 0)
{
if (p % 2 == 1)
x = d[i][x];
i++;
p /= 2;
}
fout << x << "\n";
}
return 0;
}