Cod sursa(job #3224176)

Utilizator Toni07Stoica Victor Toni07 Data 14 aprilie 2024 21:02:20
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <bits/stdc++.h>
using namespace std;
const int Nmax=25e4+5;
int N, tata[Nmax], dp[Nmax][25];
inline void RMQ(){
    int i,j;
    for(i=1;i<=N;++i)
        dp[i][0]=tata[i];
    for(i=1;i<=N;++i)
        for(j=1;j<=20;++j)
            dp[i][j]=dp[dp[i][j-1]][j-1];}
int main(){
    ifstream fin ("stramosi.in");
    ofstream fout  ("stramosi.out");
    int M, x, y, i, p;
    fin >> N >> M;
    for(i=1;i<=N;++i) fin >> tata[i];
    RMQ();
    while(M--){
        fin >> x >> y;
        while(y){
            p=floor(log2(y));
            x=dp[x][p];
            y-=pow(2,p);}
   fout << x << "\n";}
    return 0;
}