Cod sursa(job #2669517)

Utilizator raluca_panaintePanainte Raluca raluca_panainte Data 7 noiembrie 2020 10:22:09
Problema Stramosi Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include<fstream>

using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");

int n, m, t[250100], d[2010][2010], stramos, pas;

int main()
{
    int i, j, p, q;

    fin>>n>>m;
    for(i = 1; i <= n; ++i)
    {
        fin>>t[i];
        d[0][i] = t[i];
    }

    for(i = 1; (1<<i) <= n; ++i)
    {
        for(j = 1; j <= n; ++j)
        {
            d[i][j] = d[i-1][d[i-1][j]];
        }
    }

    for(i = 1; i <= m; ++i)
    {
        fin>>p>>q;

        stramos = p;
        pas = 0;
        while(q)
        {
            if(q % 2 == 1)
            {
                stramos = d[pas][stramos];
            }
            pas++;
            q /= 2;
        }

        fout<<stramos<<'\n';
    }

    return 0;

}