Cod sursa(job #2900663)

Utilizator kanyjmkSabau Eduard kanyjmk Data 11 mai 2022 19:42:17
Problema Range minimum query Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <cmath>
using namespace std;
ifstream fin("rmq.in");
ofstream fout("rmq.out");
int main()
{
    int x, y, n, m, l2n;
    fin >> n >> m;
    l2n = int(log2(n));
    int matrix[n+1][l2n+1];
    for(int i = 0; i < n; i++)
        fin >> matrix[i][0];
    for(int j = 1; (1<<j) <= n; j++)
        for(int i = 0; i + (1<<j) <= n; i++)
            matrix[i][j] = min(matrix[i][j-1],matrix[i+(1<<(j-1))][j-1]);

    for(int i = 1; i <= m; i++)
    {
        fin >> x >> y;
        x--; y--;
        int l2_dim = int(log2(y-x+1));
        cout << l2_dim;
        fout << min(matrix[x][l2_dim], matrix[y-(1<<l2_dim)+1][l2_dim]) << '\n';

    }


}