Cod sursa(job #2714206)
Utilizator | Data | 1 martie 2021 15:00:23 | |
---|---|---|---|
Problema | Stramosi | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.61 kb |
#include <bits/stdc++.h>
using namespace std;
int v[20][250005];
int main()
{
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int n,q,a,b;
fin >> n >> q;
for (int i = 1;i <= n;i++)
fin >> v[0][i];
for (int i = 1;i < 18;i++)
for (int j = 1;j <= n;j++)
v[i][j] = v[i - 1][v[i - 1][j]];
for (int i = 0;i < q;i++) {
fin >> a >> b;
for (int j = 17;j >= 0;j--)
if ((1 << j) <= b) {
b -= (1 << j);
a = v[j][a];
}
fout << a << '\n';
}
return 0;
}