Cod sursa(job #1792765)

Utilizator rotti321Rotar Mircea rotti321 Data 30 octombrie 2016 17:19:15
Problema Stramosi Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <iostream>
#include<fstream>
#include<math.h>
using namespace std;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
int n,q,p,k,r[20][250001],p2;
void do_RMQ()
{
    int m,i,j,lg[n+1],newy,newx;

    lg[1] = 0;  ///precalc log2(x)
    for (int i = 2;i <= n;i++)
            lg[i]=lg[i/2]+1;
    m = lg[n] + 1;
    for(int i=1; i<m; i++)
    {
        for(int j=1; j<=n; j++)
        {
            newy=r[i-1][j];
            newx=(i>1)?i-2:i-1;
            r[i][j]=r[newx][newy];

          //  cout<<r[i][j]<<" ";
        }
       // cout<<"\n";
    }
}
int main()
{
    int str;
    f>>n>>q;
    for(int i=1; i<=n; i++)
        f>>r[0][i];
    do_RMQ();
    for(; q; q--)
    {
        f>>p>>k;//al k lea stramos al lui p
        str=r[k-1][p];
        g<<str<<'\n';
    }
}