Cod sursa(job #2498546)

Utilizator mirceaisherebina mircea mirceaishere Data 24 noiembrie 2019 00:33:46
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");

int n, m, k, t, i, j, d[25][250010], aux, p, nod;

/// In d[i][j] tin al 2^i-lea stramos al lui j

int main(){
    fin>>n>>t;
    for(i=1; i<=n; i++){
        fin>>d[0][i];
    }
    for(i=1; i<=20; i++){
        for(j=1; j<=n; j++){
            aux=d[i-1][j];
            d[i][j]=d[i-1][aux];
        }
    }
    for(; t; t--){
        fin>>nod>>p;
        for(i=0; (1<<i)<=p; i++){
            if(p&(1<<i)){
                nod=d[i][nod];
            }
        }
        fout<<nod<<"\n";
    }
}