Cod sursa(job #3348046)

Utilizator MilitaruMihaiMihaiMIlitaru MilitaruMihai Data 19 martie 2026 13:44:55
Problema Lowest Common Ancestor Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("rmq.in");
ofstream fout("rmq.out");
int n, t,rmq[25][100005];
void precalc()
{
    for (int p = 1;  (1 << p) <= n; ++p)
    {
        for (int i = 1; i <= n; ++i)
        {
            rmq[p][i] = rmq[p - 1][i];
            int j = i + 1 << (p - 1);
            if (j <= n) rmq[p][i] = min (rmq[p][i], rmq[p - 1][j]);
        }
    }
}
int main()
{
    fin >> n >> t;
    for (int i = 1; i <=  n; ++i)
    {
        fin >> rmq[0][i];
    }
    precalc();
    for (; t; --t)
    {
        int a, b;
        fin >> a >> b;
        int p = 1, e = 0;
        p = log2(b - a + 1);
        int mn = min (rmq[p][a],  rmq[p][b - (1 << p) + 1]);
        fout << mn << '\n';

    }
    return 0;
}