Cod sursa(job #2937108)

Utilizator CastOrNicoNicoleta Castor CastOrNico Data 9 noiembrie 2022 22:16:10
Problema Range minimum query Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.54 kb
#include <bits/stdc++.h>

using namespace std;
int r[21][100101];
int n,m,x,y;
ifstream in("rmq.in");
ofstream out("rmq.out");
int main()
{
    in>>n>>m;
    for(int i=0;i<n;++i)
    {
        in>>x;
        r[0][i]=x;
    }
    for(int k=1;k<log2(n);++k)
    {
        for(int i=0;i<n;i++)
        {
            r[k][i]=min(r[k-1][i],r[k-1][i+(1<<(k-1))]);
        }
    }
    while(m)
    {
        m--;
        in>>x>>y;
        int p=log2(y-x+1);
        out<<min(r[p][x-1],r[p][y-(1<<p)]);
    }
    return 0;
}