Cod sursa(job #1836770)

Utilizator Victor24Vasiesiu Victor Victor24 Data 28 decembrie 2016 17:32:55
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>
using namespace std;

ifstream f ("stramosi.in");
ofstream g ("stramosi.out");

int v[25][250010], i, j, n, m, lg[250005], q1, q2, k, li;

int rez (int membru, int stramos)
{
    if ( stramos == 0 )
    {
        return membru;
    }

    k=lg[stramos];

    li=lg[stramos];

    k=1<<(k-1);

    return rez(v[li][membru], stramos-k);

}

int main ()
{
    f>>n>>m;

    for (i=1; i<=n; i++)
    {
        f>>v[1][i];
    }

    lg[1]=1;

    for (i=2; i <= 250004; i++)
    {
        lg[i]=lg[i/2] + 1;
    }

    for (i=2; i <= lg[n] ; i++)
    {
        for ( j = 1 ; j <= n ; j ++ )
        {
            v[i][j]= v[ i - 1 ][ v [i-1][j] ];
        }
    }

    for (i=1; i<=m; i++)
    {
        f>>q1>>q2;
        g<<rez(q1, q2)<<'\n';
    }



    return 0;
}