Cod sursa(job #2053589)

Utilizator Liviu_Ionut_MoantaMoanta Ionut Liviu Liviu_Ionut_Moanta Data 31 octombrie 2017 21:54:04
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<fstream>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int n,i,j,k,m,l,c,q,p,x,sol;
int L[250005];
int D[30][250005];
int main(){
    fin>>n>>m;
    for(i=2;i<=n;i++){
        L[i]=L[i/2]+1;
    }
    for(i=1;i<=n;i++){
        fin>>D[0][i];
    }
    for(k=1;k<=L[n];k++){
        for(i=1;i<=n;i++){
            D[k][i]=D[k-1][D[k-1][i]];
        }
    }
    int q1;
    for(i=1;i<=m;i++){
        fin>>q>>p;
        while(p!=0){
            x=L[p];
            q1=q;
            q=D[x][q1];
            p-=(1<<x);
        }
        fout<<q<<"\n";
    }
    return 0;
}