Cod sursa(job #3304778)

Utilizator carinamariaCarina Maria Viespescu carinamaria Data 27 iulie 2025 11:27:31
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>
#include <cmath>
using namespace std;
ifstream cin("stramosi.in");
ofstream cout("stramosi.out");
int n, m, p, q, S;
int t[250002], s[250002][20];
int main() {
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        cin>>t[i];
        s[i][0]=t[i];
    }
    for(int j=1;j<=ceil(log2(n));j++){
        for(int i=1;i<=n;i++){
            s[i][j]=s[s[i][j-1]][j-1];
        }
    }
    for(int i=1;i<=m;i++){
        cin>>p>>q;//stramosul lui p la dist q
        S=p;
        for(int k=ceil(log2(n));k>=0;k--){
            if(q&(1<<k)){
                S=s[S][k];
            }
        }
        cout<<S<<"\n";
    }

}