Cod sursa(job #2671380)

Utilizator Iulia_DianaIulia Diana Iulia_Diana Data 11 noiembrie 2020 23:16:10
Problema Stramosi Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int n, q, stra[250005][20];
int main()
{
    fin >> n >> q;
    for(int i=1; i<=n; i++)
         fin >> stra[i][0];
    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;
        while(k)
        {
             if(k%2)
                 x=stra[x][num];
             k/=2;
             num++;
        }
         fout << x << "\n";
    }

    return 0;
}