Cod sursa(job #2683768)

Utilizator rareshinnhoMiroiu Rares rareshinnho Data 12 decembrie 2020 09:42:49
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;

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

int D[100001][20], n,m,x,y,lg,ans;

int main()
{
    f>>n>>m;
    for(int i=1; i<=n; i++)
        f>>D[i][0];
    for(int j=1; (1<<j)<=n; j++)
    {
        for(int i=1; i<=n; i++)
        {
            D[i][j]=min(D[i][j-1],D[i+1<<(j-1)][j-1]);
        }
    }
    for(int i=1; i<=m; i++)
    {
        f>>x>>y;
        lg=log2(y-x+1);
        ans=min(D[x][lg],D[y-(1<<lg)+1][lg]);
        g<<ans<<'\n';
    }


    return 0;
}