Cod sursa(job #2904493)

Utilizator NefelibataAnton Marius Alexandru Nefelibata Data 17 mai 2022 23:48:30
Problema Range minimum query Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.6 kb
#include <iostream>
#include <fstream>

using namespace std;
int n, m, i, j, a, b, c, d, rmq[200002][30], v[200002];
ifstream f("rmq.in");
ofstream o("rmq.out");

int main()
{
    f>>n>>m;
    f>>rmq[1][0];
    for(i=2; i<=n; ++i)
        f>>rmq[i][0];
        v[i] = v[i/2]+1;
    for(i=1; i<=v[n]; i++)
        for(j=1; j<=n; j++)
            rmq[j][i]=min(rmq[j][i-1], rmq[j+(1<<(i-1))][i-1]);

    for(i=1; i<=m; i++) {
        f>>c>>d;
        a = rmq[c][v[d-c]];
        b = rmq[d-(1<<v[d-c])+1][v[d-c]];
        if (a < b) o<<a<<'\n';
        else o<<b<<'\n';
    }
    return 0;
}