Pagini recente » Cod sursa (job #1938677) | Cod sursa (job #1334094) | Cod sursa (job #123483) | Cod sursa (job #2675158) | Cod sursa (job #1396906)
#include <fstream>
using namespace std;
ifstream in("rmq.in");
ofstream out("rmq.out");
#define DIM 100010
#define logDIM
int Vec[20][DIM],i,j,Lg[DIM],n,m,k,ans,r,l;
int main()
{
in>>n>>m;
for(i=2 ; i<=n ; ++i)
Lg[ i ] = Lg[ i / 2 ] + 1;
for(i=1 ; i<=n ; ++i)
in>>Vec[ 0 ][ i ];
for(i=1 ; i<=Lg[ n ] ; ++i)
for(j=1 ; j<=n ; ++j)
Vec[ i ][ j ] = min( Vec[ i - 1 ][ j ] , Vec[ i - 1 ][ j + i ] );
for(i=1 ; i<=m ; ++i)
{
in>>l>>r;
k = Lg[ r - l ];
ans = min( Vec[ k ][ l ] , Vec[ k ][ l + k ] );
out<<ans<<'\n';
}
return 0;
}