Pagini recente » Cod sursa (job #2971637) | Cod sursa (job #1904005) | Cod sursa (job #1621297) | Cod sursa (job #716574) | Cod sursa (job #2873163)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("rmq.in");
ofstream fout("rmq.out");
int n,len,i,j,v[100001],w[2001],mn,q,x,y;
int main(){
fin>>n>>q;
len=(int)sqrt((double)n);
for(i=0;i<n;i++){
fin>>v[i];
if(i%len==0) w[i/len]=v[i];
else w[i/len]=min(w[i/len],v[i]);
}
for(i=1;i<=q;i++){
fin>>x>>y;
mn=1000000000;
x--; y--;
for(j=x;j<=y;){
if(j%len!=0 || j+len>y){
mn=min(mn,v[j]);
j++;
}
else{
mn=min(mn,w[j]);
j+=len;
}
}
fout<<mn<<'\n';
}
fin.close();
fout.close();
return 0;
}