Cod sursa(job #1715686)

Utilizator stefzahZaharia Stefan Tudor stefzah Data 11 iunie 2016 13:03:26
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
int rmq[20][250100];
int v[25];
int n,m,i,j,p2;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int main()
{for(i=0; i<25; ++i)
 v[i]=(1<<i);
 fin>>n>>m;
    for(i=1;i<=n;++i)
       fin>>rmq[0][i];
    int k=log2(n);
    for(i=1;i<=k;++i)
    {for(j=1;j<=n;++j)
        rmq[i][j]=rmq[i-1][rmq[i-1][j]];
    }
    int p,q;
    for(i=1;i<=m;++i)
    {fin>>p>>q;
     while(q&&p)
        {p2=1;
         for(j=0;p2*2<=q;++j)
            p2*=2;
            p=rmq[j][p];
            q-=p2;
        }
        fout<<p<<'\n';
    }
}