Pagini recente » Cod sursa (job #202412) | Cod sursa (job #2693862) | Cod sursa (job #423267) | Cod sursa (job #2672463) | Cod sursa (job #1960607)
#include <iostream>
#include <fstream>
#define S 400
using namespace std;
ifstream in("rmq.in");
ofstream out("rmq.out");
int n,m,a[100005],b[S],x,y,minn;
int main()
{
in>>n>>m;
for(int i=1;i<S-3;++i)b[i]=1000000;
for(int i=1;i<=n;++i)
{
in>>a[i];
b[(i-1)/S+1]=min(b[(i-1)/S+1],a[i]);
}
for(int t=1;t<=m;++t)
{
in>>x>>y;
minn=1000000;
for(int i=(x-1)/S+1;i<(y-1)/S+1;++i)minn=min(minn,b[i]);
for(int i=x;i<min((x-1)/S*S+S,y+1);++i)minn=min(minn,a[i]);
for(int i=max((y-1)/S*S,x);i<=y;++i)minn=min(minn,a[i]);
out<<minn<<'\n';
}
return 0;
}