Cod sursa(job #3233918)

Utilizator MateiAlex24Diamandi Matei MateiAlex24 Data 5 iunie 2024 13:54:20
Problema Stramosi Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int stramosi[250250][25];
int n, m;

int main()
{
    fin>>n>>m;
    for (int i=1; i<=n; i++){
        fin>>stramosi[i][0];
    }
    
    for (int i=1; i<=n; i++){
        for (int j=1; j<=m; j++){
            stramosi[i][j] = stramosi[stramosi[i][j-1]][j-1];
        }
    }
    
    while (m > 0){
        int p, q;
        fin>>q>>p;
        int ans = q;
        for (int i=0; (1<<i) <= p; i++){
            if ((p & (1<<i)) != 0)
                ans = stramosi[ans][i];
        }
        fout<<ans<<"\n";
        m--;
    }
    

    return 0;
}