Cod sursa(job #2484793)

Utilizator ViAlexVisan Alexandru ViAlex Data 31 octombrie 2019 16:44:00
Problema Range minimum query Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include<bits/stdc++.h>
using namespace std;
ifstream in("rmq.in");
ofstream out("rmq.out");


int st[2000][100000];
int val[100000];
int n,q;



void precompute(int*array,int n)
{
    for (int i = 0; i <n; i++)
        st[i][0] = array[i];

    for (int j = 1; 1<<j <=n; j++)
    {


        for (int i = 0; i + (1 << j) <= n; i++)
        {
            st[i][j] = min(st[i][j-1], st[i + (1 << (j - 1))][j - 1]);

        }

    }

}


int rmq(int l,int r)
{
    int j = log2(r -l + 1);
    int minimum = min(st[l][j], st[r - (1 << j) + 1][j]);
}


void read()
{
    in>>n>>q;
    for(int i=0; i<n; i++)
        in>>val[i];
    precompute(val,n);
    int l,r;
    for(int i=0; i<q; i++)
    {
        in>>l>>r;
        out<<rmq(l-1,r-1)<<'\n';
    }
}

int main()
{
    read();


}