Cod sursa(job #3358524)

Utilizator rhyhrrhy1Dinca Matei rhyhrrhy1 Data 17 iunie 2026 12:38:20
Problema Range minimum query Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <bits/stdc++.h>
using namespace std;

int main() {
    int x, q;
    cin >> x >> q;

    vector<int> v(x);

    for (int i = 0; i < x; i++) cin >> v[i];

   const int p = 31 - __builtin_clz(x);

    vector<vector<int>> rmq(p + 1, vector<int>(x));

    for (int i = 0; i < x; i++) {

        rmq[0][i] = v[i];
    }

    for (int i = 1; i <= p; i++) {

        for (int j = 0; j + (1 << i) <= x; j++) {

            rmq[i][j] = min(rmq[i - 1][j], rmq[i-1][j+(1<<(i-1))]);
        }
    }
    while (q--) {
        int a, b;

        cin >> a >> b;
        
        const int l = b - a + 1;
        const int y = 31 - __builtin_clz(l);

        cout << min(rmq[y][a], rmq[y][b - (1 << y) + 1])<< endl;

    }

    return 0;
}