Cod sursa(job #2569970)

Utilizator T_george_TGeorge Teodorescu T_george_T Data 4 martie 2020 14:29:33
Problema Stramosi Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <bits/stdc++.h>

using namespace std;
ifstream in("stramosi.in");
ofstream out("stramosi.out");
const int NMAX=250000;
const int LMAX=19;
int n,m,s[LMAX][NMAX];
int rasp(int a,int b){
    int node=a;
    for(int i=0;(1<<i)<=b;i++)
        if((1<<i)&b)
          node=s[i][node];
    return node;
}
int main()
{
    in>>n>>m;
    for(int i=1;i<=n;i++)
        in>>s[0][i];
    for(int k=1;k<=LMAX;k++)
    for(int i=1;i<=n;i++)
      s[k][i]=s[k-1][s[k-1][i]];
    for(int i=1,a,b;i<=m;i++){
        in>>a>>b;
        out<<rasp(a,b)<<'\n';
    }
    return 0;
}