Cod sursa(job #2977260)

Utilizator SebytomitaTomita Sebastian Sebytomita Data 11 februarie 2023 10:10:48
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <fstream>
#include <bits/stdc++.h>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int n,m,i;
int tata[250008][28],a,b,j;
int main()
{
    fin>>n>>m;
    for(i=1;i<=n;i++)
    {
        fin>>tata[i][0];
    }
    for(j=1;(1<<j)<=n;j++)
    {
        for(i=(1<<j);i<=n;i++)
        {
            tata[i][j]=tata[tata[i][j-1]][j-1];
        }
    }
    for(i=1;i<=m;i++)
    {
        fin>>a>>b;
        while(b)
        {
            a=tata[a][(int)(log2((b&-b)))];
            b=b-(b&-b);
        }
        fout<<a<<'\n';
    }
    return 0;
}