Cod sursa(job #2321624)
| Utilizator | Data | 16 ianuarie 2019 13:22:43 | |
|---|---|---|---|
| Problema | Stramosi | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.5 kb |
#include <fstream>
int mat[25][250001], n, m, i, j, k;
int main() {
std::ifstream is{"stramosi.in"};
is >> n >> m;
for (i = 1; i <= n; ++i)
is >> mat[0][i];
for (k = 1; (1 << k) <= n; ++k)
for (j = 1; j <= n; ++j)
mat[k][j] = mat[k - 1][mat[k - 1][j]];
std::ofstream os{"stramosi.out"};
while (m--) {
k=0;
is >> i >> j;
while (j) {
if (j & 1)
i = mat[k][i];
++k;
j >>= 1;
}
os << i << '\n';
}
}
