Cod sursa(job #2940335)

Utilizator mihaistamatescuMihai Stamatescu mihaistamatescu Data 15 noiembrie 2022 12:03:31
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <fstream>
using namespace std;
int n, q, nod, dist, D[250010][20];
int main (){
    ifstream fin ("stramosi.in");
    ofstream fout("stramosi.out");
    fin>>n>>q;
    for (int i=1;i<=n;i++){
        fin>>D[i][0];
    }
    for (int k=1;(1<<k)<=n;k++){
        for (int i=1;i<=n;i++){
            D[i][k]=D[D[i][k-1]][k-1];
        }
    }
    for (int i=1;i<=q;i++){
        fin>>nod>>dist;
        for (int j=18;j>=0;j--){
            if (dist>=(1<<j)){
                dist-=(1<<j);
                nod=D[nod][j];
            }
        }
        fout<<nod<<"\n";
    }
    return 0;
}