Pagini recente » Cod sursa (job #2636535) | Cod sursa (job #2644383) | Cod sursa (job #1280881) | Cod sursa (job #2503980) | Cod sursa (job #3331248)
#include <bits/stdc++.h>
/// Template Dutzu
#define fast ios_base::sync_with_stdio(false);cin.tie(0);
using namespace std;
ifstream fin("rmq.in");
ofstream fout("rmq.out");
int n;
int v[100001],bat[1001];
int main()
{
fast
int m;
fin>>n>>m;
for (int i=1;i<=n;i++)
fin>>v[i];
int lg=sqrt(n);
bat[0]=INT_MAX;
for (int i=1;i<=lg;i++)
{
int minim=INT_MAX;
int aux=min(i*lg,n);
for (int j=(i-1)*lg+1;j<=aux;j++)
minim=min(minim,v[j]);
bat[i]=minim;
}
for (int l=1;l<=m;l++)
{
int a,b;
fin>>a>>b;
int st,dr;
if (a%lg==0)
st=a/lg+1;
else
st=(a-1)/lg+1;
if (b%lg==0)
dr=(b-1)/lg;
else
dr=b/lg;
int rez=INT_MAX;
if (st<=dr){
for (int i=st;i<=dr;i++)
rez=min(rez,bat[i]);
for (int i=a;i<=min(st*lg,b);i++)
rez=min(rez,v[i]);
for (int i=dr*lg+1;i<=b;i++)
rez=min(rez,v[i]);
}
else
for (int i=a;i<=b;i++)
rez=min(rez,v[i]);
fout<<rez<<'\n';
}
return 0;
}