Cod sursa(job #3296637)
| Utilizator | Data | 14 mai 2025 22:10:07 | |
|---|---|---|---|
| Problema | Stramosi | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.45 kb |
#include <fstream>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int n, q, k, p, r, d[250001][19];
int main() {
fin >> n >> q;
for (int i = 1; i <= n; i++)
fin >> d[i][0];
for (int i = 1; i <= n; i++)
for (int j = 1; j <= 18; j++)
d[i][j] = d[d[i][j - 1]][j - 1];
while (q--) {
fin >> k >> p;
r = 0;
while (p != 0) {
if (p % 2 != 0)
k = d[k][r];
r++;
p /= 2;
}
fout << k << "\n";
}
return 0;
}