Pagini recente » Cod sursa (job #1343176) | Cod sursa (job #1877568) | Monitorul de evaluare | Diferente pentru problema/keymess intre reviziile 47 si 46 | Cod sursa (job #1960600)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("rmq.in");
ofstream fout("rmq.out");
int n,m,k,rsp=999999999,x,y,rez,a[100005],v[105];
int main()
{
const int dim=1000;
fin>>n>>m;
for(int i=1;i<=n;i++)fin>>a[i];
for(int i=1;i<=n;i++)
{
rsp=min(rsp,a[i]);
if(i%dim==0)
{
v[++k]=rsp;
rsp=999999999;
}
}
if(n%dim!=0)v[++k]=rsp;
for(int i=1;i<=m;i++)
{
fin>>x>>y;
rez=999999999;
for(int j=x;j<=y;j++)
{
rez=min(rez,a[j]);
if(j%dim==0)
{
if(j+dim<y)
{
j+=dim;
rez=min(rez,v[j/dim]);
}
}
}
fout<<rez<<'\n';
}
return 0;
}