Cod sursa(job #3196749)

Utilizator adrian_zahariaZaharia Adrian adrian_zaharia Data 24 ianuarie 2024 18:32:18
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <bits/stdc++.h>
#define FastIo() ios_base::sync_with_stdio(false), cin.tie(nullptr),cout.tie(nullptr);
using namespace  std;
const int nmax = 250005;
const int lg = 17;
int n,m;
int p,q;
int r[nmax][lg+1];
int main(){
    ifstream fin("stramosi.in");
    ofstream fout("stramosi.out");
    FastIo();
    fin>>n>>m;
    for(int i=1;i<=n;i++) fin>>r[i][0];

    for(int l = 1;(1<<l)<=n; l++)
        for(int i = 1; i <= n; i++)
            r[i][l]=r[r[i][l-1]][l-1];

    for(int i=1;i<=m;i++){
        fin>>q>>p;
        for(int l=lg;l>=0;--l)
            if(p>=(1<<l)){
                q=r[q][l];
                p-=(1<<l);
            }
        fout<<q<<'\n';
    }
    return 0;
}