Cod sursa(job #2325546)

Utilizator racheriunicolaechowchow racheriunicolae Data 22 ianuarie 2019 18:48:54
Problema Stramosi Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <bits/stdc++.h>

using namespace std;
int n , m , i , dp[25][250005] , p , t , x ,str;
int main()
{
    ifstream fin("stramosi.in");
    ofstream fout("stramosi.out");
    fin >> n >> m;
    for(i = 1; i <= n; i++)
    {
        fin >> dp[0][i];
    }
    for(p = 1; (1 << p) < 25; p++)
    {
        for(i = 1; i <= n; i++)
        {
            dp[p][i] = dp[p-1][dp[p-1][i]];
        }
    }
    for(t = 1; t <= m; t++)
    {
        fin >> x >> str;
        while(str)
        {
            int lg = log2(str);
            x = dp[lg][x];
            str = str - (1 << lg);
           // cout << str << "\n";
        }
        fout << x << "\n";
    }
    return 0;
}