Cod sursa(job #2321588)

Utilizator marcogoldPop Mihali Marco Silviu marcogold Data 16 ianuarie 2019 12:29:03
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <iostream>
#include <fstream>
using namespace std;

ofstream fo("stramosi.out");
ifstream fi("stramosi.in");

int n,m,str[23][250000],a,b;

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

    for(int i=1;i<=n;i++)
    {
        fi>>a;
        str[0][i]=a;
    }


    for(int i=1;(1<<i)<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            str[i][j]=str[i-1][ str[i-1][j] ] ;
        }
    }

    for(int i=1;i<=m;i++)
    {
        fi>>a>>b; /// al b-lea stramos al nodului a

        for(int i=0;i<=20;i++)
        {
            if( (1<<i)& b )
                a=str[i][a];
        }
        fo<<a<<'\n';

    }


   fo.close();
   fi.close();
    return 0;
}