Cod sursa(job #2321619)

Utilizator OldpugAlex Ionescu Oldpug Data 16 ianuarie 2019 13:13:05
Problema Stramosi Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.5 kb
#include <fstream>

int g[25][250001], n, m, i, j, k, p, q, e{};

int main() {
  std::ifstream o{"stramosi.in"};

  o >> n >> m;

  for (i = 1; i <= n; ++i)
    o >> g[0][i];

  for (k = 1; (1 << k) <= n; ++k)
    for (j = 1; j <= n; ++j)
      g[k][j] = g[k - 1][g[k - 1][j]];

  std::ofstream s{"stramosi.out"};

  for (i = 1; i <= m; ++i) {
    o >> q >> p;

    while (p) {
      if (p & 1)
        q = g[e][q];

      ++e;
      p >>= 1;
    }

    s << q << '\n';
  }
}