Cod sursa(job #2682552)

Utilizator lucametehauDart Monkey lucametehau Data 8 decembrie 2020 21:29:58
Problema Stramosi Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <bits/stdc++.h>

using namespace std;

ifstream in ("stramosi.in");
ofstream out ("stramosi.out");

int n, q;
int x, y;

int t[5][250005];

int main() {
  in >> n >> q;
  for(int i = 1; i <= n; i++)
    in >> t[0][i];
  for(int i = 1; i <= 4; i++) {
    for(int j = 1; j <= n; j++) {
      t[i][j] = i;
      for(int k = 0; k < (1 << 4); k++)
        t[i][j] = t[i - 1][t[i][j]];
    }
  }
  for(int i = 1; i <= q; i++) {
    in >> x >> y;
    for(int p = 4; p >= 0; p--) {
      for(int j = (y >> (4 * p)); j; j--)
        x = t[p][x];
      y &= ((1 << (4 * p)) - 1);
    }
    out << x << "\n";
  }
  return 0;
}