Cod sursa(job #2920712)

Utilizator Horia_haivasHaivas Horia Horia_haivas Data 25 august 2022 15:03:33
Problema Range minimum query Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb

/*
    "TLE is like the wind, always by my side"
    - Yasuo - 2022 -
*/
#include <bits/stdc++.h>
#define debug(x) cerr << #x << " " << x << "\n"
#define debugs(x) cerr << #x << " " << x << " "

using namespace std;

int rmq[100001][17];
int v[100001];

int main()
{
    ifstream fin("rmq.in");
    ofstream fout("rmq.out");
    ios_base::sync_with_stdio(false);
    fin.tie(0);
    fout.tie(0);
    long long n,q,i,j,l,r;
    fin >> n >> q;
    for (i=1;i<=n;i++)
    {
        fin >> v[i];
        rmq[i][0]=v[i];
    }
    for (j=1;j<=17;j++)
    {
         for (i=1;i+(1<<j)-1<=n;i++)
         {
              rmq[i][j]=min(rmq[i][j-1],rmq[i+(1<<(j-1))][j-1]);
         }
    }
    for (i=1;i<=q;i++)
    {
        fin >> l >> r;
        long long putere;
        putere=log2(r-l+1);
        fout << min(rmq[l][putere],rmq[r-(1<<putere)+1][putere]) << "\n";
    }
}