Cod sursa(job #2938983)

Utilizator Utucora2017Nicolae Utucora2017 Data 12 noiembrie 2022 20:46:44
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<fstream>
#include<vector>
using namespace std;
ifstream cin("stramosi.in");
ofstream cout("stramosi.out");
int a[250002][18];
int main(){
    int n,m;
    cin>>n>>m;
    for(int i=1;i<=n;i++)
        cin>>a[i][1];
    for(int k=1;k<=17;k++)
        for(int i=1;i<=n;i++){
            a[i][k+1]=a[a[i][k]][k];
            //cout<<a[i][k+1]<<" ";
        }
    for(int i=1;i<=m;i++){
        int nod,stramos;
        cin>>nod>>stramos;
        while(stramos){
            int cnt=1,p=1;
            while(p*2<=stramos)
                p*=2,cnt++;
            stramos-=p;
            nod=a[nod][cnt];
        }
        cout<<nod<<"\n";
    }
}