Cod sursa(job #2658481)

Utilizator DordeDorde Matei Dorde Data 14 octombrie 2020 02:29:45
Problema Stramosi Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.61 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;
    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;
        for(i = log2 (q) ; i >= 0 ; -- i)
            if ((1 << i) & q)
                cur = v [cur][i];
        g << cur << '\n';
    }
    return 0;
}