Cod sursa(job #3310325)

Utilizator petric_mariaPetric Maria petric_maria Data 12 septembrie 2025 23:54:52
Problema Stramosi Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
int n, m, dp[20][250005], p, q;
int pwr[250005];

int main()
{
    f >> n >> m;
    for (int i=1; i<=n; ++i) {
        f >> dp[0][i];
    }
    for (int p=1; (1<<p)<=n; ++p)
        for (int i=1; i<=n; ++i)
            dp[p][i] = dp[p-1][ dp[p-1][i] ];

    pwr[1] = 0;
    for (int i=2; i<=n; ++i)
        pwr[i] = pwr[i/2] + 1;

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

        while (q && p) {
            q = dp[ pwr[p] ][q];
            p -= (1<<pwr[p]);
        }
        g << q << '\n';
    }
    return 0;
}