Cod sursa(job #3196742)

Utilizator adrian_zahariaZaharia Adrian adrian_zaharia Data 24 ianuarie 2024 18:22:22
Problema Stramosi Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <bits/stdc++.h>

using namespace  std;
const int nmax = 250005;
const int lg = 20;
int n,m;
int p,q;
int r[lg+1][nmax];
int main(){
    freopen("stramosi.in","r",stdin);
    freopen("stramosi.out","w",stdout);
    cin>>n>>m;
    vector<int> v(n);
    for(int i=1;i<=n;i++) cin>>r[0][i];

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

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