Cod sursa(job #3294924)

Utilizator Mirc100Mircea Octavian Mirc100 Data 30 aprilie 2025 13:10:20
Problema Range minimum query Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include<bits/stdc++.h>
using namespace std;

int main(){
    ifstream fin("rmq.in");
    ofstream fout("rmq.out");
    long n, m, i, j, x, y, nr, k, minrmq;
    fin >> n >> m;
  int rmq[100000][20];

    for(i = 0; i < n; i++){
        fin >> rmq[i][0];
    }

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

        }
    }

    for(int nr = 1; nr <= m; nr++){
        fin >> x >> y;
        x--;
        y--;
        int k = int(log2(y-x+1));
        long minrmq = min(rmq[x][k], rmq[y-(1<<k) + 1][k]);
        fout << minrmq << endl;
    }

}