Cod sursa(job #2796909)

Utilizator cezar.balutaCezar Baluta cezar.baluta Data 8 noiembrie 2021 23:42:45
Problema Stramosi Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <vector>
#include <fstream>
#include <bitset>
#include <iostream>

using namespace std;

const int N=250005;
int stramosi[19][N];

int main() {
    ifstream in("stramosi.in");
    ofstream out("stramosi.out");
    int n,m,x,y;
    in>>n>>m;
    for(int i=1;i<=n;i++){
        in>>stramosi[i][0];
    }
    for(int i=1; i<=n;i++){
        for(int j=1;j<19;j++)
        stramosi[i][j]=stramosi[stramosi[i][j-1]][j-1];
    }
    for(int i=0;i<m;i++){
        in>>x>>y;
        int k= (1<<18) ;
        for(int j=18;j>=0;j--){
            if(y>=k) {
            y-=k;
            x=stramosi[x][j];
            }
            k/=2;
        }
        out<<x<<"\n";
    }
}