Cod sursa(job #2595939)

Utilizator ptudortudor P ptudor Data 8 aprilie 2020 18:33:16
Problema Stramosi Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb

#include <bits/stdc++.h>

using namespace std;



ifstream in("stramosi.in");

ofstream out("stramosi.out");

int n,m,p[250005],dp[250005][25];

int main()

{int i,j,q,P,p_2,stramos;

    in >> n >> m;

    for (i = 1; i <= n; i++) in >> p[i];

    for (i = 1; i <= n; i++)

        dp[i][0] = p[i];



    for (j = 1; j <= 17; j++)

        for (i = 1; i <= n; i++)

            dp[i][j] = dp[dp[i][j - 1]][j - 1];

    for (i = 1; i <= m; i++)

    {

        in >> q >> P;

        p_2 = 0;

        stramos = q;

        while (P)

        {

            if (P & 2 != 0)

            {

                stramos = dp[stramos][p_2];

            }

            P = (P >> 1);

            p_2++;

        }

        out << stramos << "\n";

    }

    return 0;

}