Cod sursa(job #3338001)

Utilizator Afilipoae_TeodorAfilipoae Teodor Cezar Afilipoae_Teodor Data 31 ianuarie 2026 10:06:25
Problema Range minimum query Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <bits/stdc++.h>

using namespace std;
#define NMAX 100005


ifstream fin("rmq.in");
ofstream fout("rmq.out");

// 2 la 17> 100 000

int RMQ[17][NMAX];
int n,m,i,j,x,y;
int v[NMAX];
int dp[NMAX][17];
int puteri[17];
int lun;

int put=1;
int nput=2;
int loga[NMAX];
int main()
{

fin>>n>>m;


for(i=1;i<=n;i++)
{
    fin>>v[i];
    dp[i][0]=v[i];
}



nput=2;

for(put=1;nput<=n;put++)
{

for(i=1;i<=lun;i++)
{
dp[i][put]=min(dp[i][put-1],dp[i+nput/2][put-1]);
}

    nput*=2;
}



for(i=1;i<=m;i++)
{
    fin>>x>>y;

    int r=loga[y-x+1];

fout << min(dp[x][r], dp[y - (1 << r) + 1][r])<<'\n';


}




    return 0;
}