Cod sursa(job #2614597)

Utilizator AlexVulpoiuAlexandru Vulpoiu AlexVulpoiu Data 11 mai 2020 22:52:06
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>

using namespace std;

ifstream f("stramosi.in");
ofstream g("stramosi.out");

int n, m, i, j, k, s, sol, stramos[20][250005];

int main()
{
    f >> n >> m;
    for(i = 1; i <= n; i++)
        f >> stramos[0][i];
    for(i = 1; (1 << i) < n; i++)
        for(j = 1; j <= n; j++)
            stramos[i][j] = stramos[i - 1][stramos[i - 1][j]];  /// stramosul lui j de ordinul 2^i

    while(m)
    {
        f >> k >> s;

        sol = k;
        for(i = 17; i >= 0; i--)
            if((1 << i) <= s)
            {
                sol = stramos[i][sol];
                s -= (1 << i);
            }

        g << sol << '\n';

        m--;
    }

    f.close();
    g.close();

    return 0;
}