Cod sursa(job #1696876)

Utilizator ZanoxNonea Victor Zanox Data 30 aprilie 2016 09:20:06
Problema Stramosi Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.5 kb
#include <fstream>
#include <iostream>

int v[250001][19],n,m,i,j,k,l,sol;

using namespace std;

fstream f,g;

int main()
{
    f.open("stramosi.in",ios_base::in);
    g.open("stramosi.out",ios_base::out);
    f>>n>>m;
    for(i=1;i<=n;i++)f>>v[i][0];
    for(i=1;i<=18;i++)for(j=1;j<=n;j++)v[j][i]=v[v[j][i-1]][i-1];
    for(i=1;i<=m;i++)
    {
        f>>sol>>k;
        //sol id, k grad stramos
        for(j=0,l=1;l<=k&&sol!=0;j++,l*=2)if(l&k)sol=v[sol][j];
        g<<sol<<'\n';
    }
}