Cod sursa(job #2590899)

Utilizator ptudortudor P ptudor Data 29 martie 2020 11:57:31
Problema Stramosi Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 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 <= 18; 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 == 1)
            {
                stramos = dp[stramos][p_2];
            }
            P /= 2;
            p_2++;
        }
        out << stramos << "\n";
    }
    return 0;
}