Cod sursa(job #2672316)

Utilizator Iulia_DianaIulia Diana Iulia_Diana Data 13 noiembrie 2020 17:13:54
Problema Stramosi Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.93 kb

#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int n, q, tata[250005], stra[250005][20];
int main()
{
    fin >> n >> q;
    for(int i=1; i<=n; i++)
    {
         fin >> tata[i];
         stra[i][0]=tata[i];
    }
    for(int i=1; i<=17; i++)
        for(int j=2; j<=n; j++)
            stra[j][i]=stra[stra[j][i-1]][i-1];
//    for(int i=1; i<=n; i++)
//    {
//          for(int j=0; j<5; j++)   fout << stra[i][j] << " ";
//          fout << "\n";
//    }
    for(int i=1; i<=q; i++)
    {
        int x, k, num=0;
        fin >> x >> k;
        if(k<=x)
        {
            while(k && x)
            {
                if(k%2)
                    x=stra[x][num];
                k/=2;
                num++;
            }
            fout << x << "\n";
        }
        else
            fout << 0 << "\n";

    }

    return 0;
}