Cod sursa(job #3030836)

Utilizator roxana13.Ghitan Roxana roxana13. Data 17 martie 2023 22:09:22
Problema Range minimum query Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
#include <vector>
#include <list>
#include <queue>

using namespace std;

ifstream f("rmq.in");
ofstream g("rmq.out");

int  n, m, q, x, y, k, s, v;
int a[21][100005], lg[100005];


int main()
{
    f >> n >> q;
    for (int i = 1; i <= n; i++)
    {
        f >> a[0][i];
        if (i != 1)
            lg[i] = 1 + lg[i >> 1];
    }
    for (int i = 1; i <= lg[n]; i++)
        for (int j = (1 << i); j <= n; j++)
            a[i][j] = min(a[i - 1][j], a[i - 1][j - (1 << (i - 1))]);
    while (q--)
    {
        f >> x >> y;
        int l = lg[y-x+1];
        g << min(a[1][x+(1<<l)-1],a[l][y]) << '\n';
    }

    return 0;
}