Cod sursa(job #2321582)

Utilizator XDDDDariusPetean Darius XDDDDarius Data 16 ianuarie 2019 12:13:21
Problema Stramosi Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <iostream>
#include <fstream>

std::ifstream in("stramosi.in");
std::ofstream out("stramosi.out");

using namespace std;
int t[20][250005];
int numar,nrst,n,m;

int main()
{
    in>>n>>m;
    for(int i=1;i<=n;i++)
    {
        in>>t[0][i];
    }
    for(int i=1;(1<<i)<=n;i++)
    {
        for(int k=i;k<=n;k++)
        {
            t[i][k]=t[i-1][t[i-1][k]];
        }
    }
    for(int i=1;i<=m;i++)
    {
        in>>numar>>nrst;
        int e=0,nr=0;
        while(nrst>0)
        {
            if(nrst%2==1)
            {
                nr=t[e][numar];
            }
            e++;
            nrst/=2;
        }
        out<<nr<<"\n";
    }
    return 0;
}