Cod sursa(job #2056887)

Utilizator LauraNaduLaura Nadu LauraNadu Data 4 noiembrie 2017 13:39:12
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <fstream>
#include <cmath>
using namespace std;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
int n, m, d[51][250003], i, j, sol, k, lg[250003];
int main()
{
    f>>n>>m;
    f>>d[0][1];
    for(i=2;i<=n;i++)
    {
        f>>d[0][i];
        lg[i]=lg[i/2]+1;    //mai rapid decat log2(i) ???
    }
    for(k=1;(1<<k)<=n;k++)
        for(i=1;i<=n;i++)
            d[k][i]=d[k-1][d[k-1][i]];
    for(;m;m--)
    {
        f>>i>>j;
        while(j>0)
        {
            i=d[lg[j]][i];
            j=j-(1<<lg[j]);
        }
        g<<i<<"\n";
    }
    return 0;
}