Pagini recente » Cod sursa (job #854497) | Cod sursa (job #247813) | Cod sursa (job #2591076) | Cod sursa (job #2309134) | Cod sursa (job #1045997)
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
ifstream f ("rmq.in");
ofstream g ("rmq.out");
int main()
{
int n, m, a[20][100002],x,y,lim;
f>>n>>m;
int i,l;
for (i=1;i<=n;i++)
f>>a[0][i];
for (i=n;i>0;i--)
for (l=1;(1<<l)<=n;l++)
a[l][i]=min(a[l-1][i],a[l-1][i+(1<<(l-1))]);
for (i=1;i<=m;i++)
{
f>>x>>y;
lim=(int)log2(y-x+1);
g<<min(a[lim][x],a[lim][y-(1<<lim)+1])<<'\n';
}
f.close();g.close();
return 0;
}