Pagini recente » Cod sursa (job #353127) | Cod sursa (job #353400) | Cod sursa (job #1391391) | Rating Cont Teste (contdeteste) | Cod sursa (job #2760703)
//
// main.cpp
// Range minimum query
//
// Created by Vlad Calomfirescu on 14.05.2021.
//
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
ifstream fin("rmq.in");
ofstream fout("rmq.out");
int n,m,j,rmq[20][100002],l,x,y,z,i,k,rez;
int lg[100002];
int main()
{
fin>>n>>m;
for(j=1; j<=n; j++)
fin>>rmq[0][j];
for( i=1; (1<<i)<=n ; i++ )
for( j=1 ; j<=n-(1<<i)+1 ; j++ )
rmq[i][j] = min( rmq[i-1][j], rmq[i-1][j+(1<<i)/2] );
lg[1]=0;
for (i=2; i<=20; i++) {
lg[i]=lg[i/2]+1;
}
for(k=1; k<=m; k++)
{
fin>>x>>y;
i = lg[y-x+1];
rez=min(rmq[i][x],rmq[i][y-(1<<i)+1]);
fout<<rez<<endl;
}
return 0;
}