Cod sursa(job #3225002)

Utilizator unomMirel Costel unom Data 16 aprilie 2024 19:23:10
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
#include <vector>

using namespace std;

ifstream in("stramosi.in");
ofstream out("stramosi.out");
int n, q;
int v[250005];
int w[21][250005];

int main()
{
    in>>n>>q;

    for(int i = 1; i<=n; i++)
    {
        in>>v[i];
    }

    for(int i = 0; i<=20; i++)
    {
        if(i == 0)
        {
            for(int j = 1; j<=n; j++)
            {
                w[i][j] = v[j];
            }
        }
        else
        {
            for(int j = 1; j<=n; j++)
            {
                w[i][j] = w[i - 1][w[i - 1][j]];
            }
        }
    }

    int x, y;
    while(q--)
    {
        in>>x>>y;

        for(int i = 0; i<=20; i++)
        {
            if(y & (1 << i))
            {
                x = w[i][x];
            }
        }

        out<<x<<'\n';
    }


    return 0;
}