Cod sursa(job #2290503)

Utilizator verde.cristian2005Verde Flaviu-Cristian verde.cristian2005 Data 26 noiembrie 2018 16:49:18
Problema Stramosi Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>
using namespace std;
ifstream in("stramosi.in");
ofstream out("stramosi.out");
int v[250001];
int log[250001];
int d[17][250001];
int main()
{
    int n,m,i,j,p,q,x;
    in>>n>>m;
    for(i=2; i<=250000; i++)
        log[i]=1+log[i/2];
    for(i=1; i<=n; i++)
    {
        in>>v[i];
        for(j=0; j<=log[n]; j++)
        {
            if(j==0)
                d[0][i]=v[i];
            else
                d[j][i]=d[j-1][i-(1<<(j-1))];
        }
    }
    int pas;
    for(i=1; i<=m; i++)
    {
        pas=1<<17;
        in>>p>>q;
        while(q)
        {
            if(q-pas>=0)
            {
                p=d[log[pas]][p];
                q-=pas;
            }
            pas/=2;
        }
        out<<p<<'\n';
    }
    return 0;
}