Cod sursa(job #1979849)

Utilizator refugiatBoni Daniel Stefan refugiat Data 11 mai 2017 15:46:36
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream si("stramosi.in");
ofstream so("stramosi.out");
int sol[20][250005];
int main()
{
    int n,q;
    si>>n>>q;
    for(int i=1;i<=n;++i)
    {
        si>>sol[0][i];
    }
    for(int j=1;j<=18;++j)
    {
        for(int i=1;i<=n;++i)
        {
            sol[j][i]=sol[j-1][sol[j-1][i]];
        }
    }
    int a,b;
    for(int i=1;i<=q;++i)
    {
        si>>a>>b;
        b=min(b,n+2);
        for(int j=0;j<=18;++j)
        {
            if(b&(1<<j))
            {
                a=sol[j][a];
                b-=1<<j;
            }
        }
        so<<a<<'\n';
    }
    return 0;
}