Cod sursa(job #3132760)

Utilizator corinarobuRobu Corina corinarobu Data 23 mai 2023 19:40:02
Problema Range minimum query Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.59 kb
#include <iostream>
#include <fstream>
#include <cmath>
ifstream f("rmq.in");
ofstream g("rmq.out");
int a[100001][17];

int main(){

    int n, m, x, y, i, p , min;
    f >> n >> m;

    for( i = 1; i <= n; i++)
        f >> a[i][0];

    for( p = 1; p < 17; p++)
        for( i = 1; i + (1 << p) - 1 <= n; i++)
            a[i][p] = min(a[i][p - 1], a[i + (1 << (p - 1))][p - 1]);

    i = 0;
    while(i < m ){
        f >> x >> y;

         p =  log2(y-x+1);

        min = min(a[x][p], a[y - (1 << p) + 1][p]);
        g << min <<  endl;
      i++;
    }
    return 0;
}