Cod sursa(job #3363891)

Utilizator medeeavasile56@gmail.comVasile Medeea [email protected] Data 24 august 2026 19:30:41
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
#include <cmath>
#include <algorithm>
#include <vector>
using namespace std;
ifstream cin("stramosi.in");
ofstream cout("stramosi.out");
const int NMAX=250005;
vector<int> parent,sol;
int str[NMAX][21];
int main()
{
    int n,m; cin>>n>>m;
    parent.resize(n+1);
    for(int i=1;i<=n;i++){
        cin>>parent[i];
        str[i][0]=parent[i];
    }
    for(int j=1;j<=20;j++)
    for(int i=1;i<=n;i++){
    str[i][j]=str[str[i][j-1]][j-1];
    }
    for(int i=1;i<=m;i++){
        int p,q; cin>>p>>q;
        for(int j=20;j>=0;j--)
            if((1<<j)<=q)
            {
                p=str[p][j];
                q-=1<<j;
            }
       sol.push_back(p);
    }
    for(int x:sol) cout<<x<<'\n';
    return 0;
}