Cod sursa(job #1045997)

Utilizator CatalinaRaduCatalina Elena Radu CatalinaRadu Data 2 decembrie 2013 16:06:33
Problema Range minimum query Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <iostream>
#include <fstream>
#include <math.h>

using namespace std;
ifstream f ("rmq.in");
ofstream g ("rmq.out");

int main()
{
    int n, m, a[20][100002],x,y,lim;
    f>>n>>m;
    int i,l;
    for (i=1;i<=n;i++)
        f>>a[0][i];
    for (i=n;i>0;i--)
        for (l=1;(1<<l)<=n;l++)
        a[l][i]=min(a[l-1][i],a[l-1][i+(1<<(l-1))]);
    for (i=1;i<=m;i++)
    {
        f>>x>>y;
        lim=(int)log2(y-x+1);
        g<<min(a[lim][x],a[lim][y-(1<<lim)+1])<<'\n';

    }
    f.close();g.close();
    return 0;
}