Cod sursa(job #2321653)

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

int g[25][250001],n,m,i,j,k,l;

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

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

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

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

  while (m--) {
    o >> i >> j;

    while (j) {
      if (j & 1)
        i = g[l][i];

      ++l;
      j /= 2;
    }

    s << i << '\n';
  }
}