Cod sursa(job #3230627)

Utilizator izabelamariaJilavu Izabela izabelamaria Data 22 mai 2024 00:53:42
Problema Stramosi Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <iostream>
#include <fstream>
#include <vector>

#define NMAX 250001
#define LOGN 33

using namespace std;

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

int n, m;
int stramosi[LOGN][NMAX];

int main() {
  fin >> n >> m;
  for (int i = 1; i <= n; i++) fin >> stramosi[0][i];
  
    for (int i = 1; i <= LOGN; i++)
      for (int j = 1; j <= n; j++)
        stramosi[i][j] = stramosi[i - 1][stramosi[i - 1][j]];
  

  for (int i = 1; i <= m; i++) {
    int p, q;
    fin >> q >> p;
    
    int exp = 0;
    while (p) {
      if (p % 2 == 1) {
        q = stramosi[exp][q];
      }

      exp++;
      p >>= 1;
    }

    fout << q << '\n';
  }
}