Cod sursa(job #3224499)

Utilizator adelinapetreAdelina Petre adelinapetre Data 15 aprilie 2024 15:23:05
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<fstream>
using namespace std;
ifstream cin("stramosi.in");
ofstream cout("stramosi.out");
int dp[250005][40];
int main()
{
    int n, m, i, j, p, q, ans = 0, cnt = 0, a;
    cin >> n >> m;
    for (i = 1; i <= n; i ++)
    {
        cin >> a;
        dp[i][0] = a; ///primul stramos al lui i e a
    }
    for(i = 1; i <= n; i ++)
        for(j = 1; (1 << j) <= n; j ++)
            dp[i][j] = dp[dp[i][j - 1]][j - 1];
    for (i = 1; i <= m; i ++)
    {
        cin >> p >> q;
        ans = p;
        cnt = 0;
        for(j = 0; (1 << j) <= n; j++)
        {
            if(q & (1 << j))
                ans = dp[ans][j];
        }
        cout << ans << '\n';
    }
    return 0;
}