Cod sursa(job #2658482)

Utilizator DordeDorde Matei Dorde Data 14 octombrie 2020 02:30:21
Problema Stramosi Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>

using namespace std;
ifstream f ("stramosi.in");
ofstream g ("stramosi.out");
int const N = 250001;
int v [N][18];
int main()
{
    int n , m , i , j , p , cur , q , x;
    f >> n >> m;
    for(i = 1 ; i <= n ; ++ i)
        f >> v [i][0];
    for(i = 1 ; (1 << i) <= n ; ++ i)
        for(j = (1 << i) + 1 ; j <= n ; ++ j)
            v [j][i] = v [v [j][i - 1]][i - 1];
    while (m --){
        f >> p >> q;
        cur = p , x = 0;
        while ((1 << x) < q)
            ++ x;
        for(i = x ; i >= 0 ; -- i)
            if ((1 << i) & q)
                cur = v [cur][i];
        g << cur << '\n';
    }
    return 0;
}