Pagini recente » Cod sursa (job #3229501) | Cod sursa (job #2621603) | Cod sursa (job #3127451) | Cod sursa (job #2727116) | Cod sursa (job #1829701)
#include <fstream>
using namespace std;
ifstream f("rmq.in");
ofstream g("rmq.out");
int n,m,i,Fi,Mid,j,x,y,z,t,En,a[100010][20];
int main()
{
f>>n>>m;
for(i=1;i<=n;i++)
f>>a[i][0];
for(i=1;(1<<i)<=n;i++)
for(Fi=1,En=(1<<i),Mid=(Fi+En+1)/2;En<=n;Fi++,Mid++,En++)
a[Fi][i]=min(a[Fi][i-1],a[Mid][i-1]);
for(;m;m--)
{
f>>x>>y;
z=1;t=0;
while(z<<1<=y-x)
z<<=1,t++;
g<<min(a[x][z-1],a[y-t][z-1])<<'\n';
}
return 0;
}