Pagini recente » Cod sursa (job #2363446) | Cod sursa (job #87354) | Cod sursa (job #2599347) | Cod sursa (job #1641435) | Cod sursa (job #2836535)
#include<fstream>
using namespace std;
ifstream fin("rmq.in");
ofstream fout("rmq.out");
int i,n,m,x,y,j,e,len,r[100][100010],put[100010];
int main(){
fin>>n>>m;
for(i=1;i<=n;i++)
fin>>r[0][i];
for(i=1;(1<<i) <=n;i++){
for(j=1;j<=n;j++)
if(j+(1<<(i-1))<=n)
r[i][j]=min(r[i-1][j], r[i-1][j+(1<<(i-1))]);
}
for(i=2;i<=n;i++)
put[i]=1+put[i/2];
for(i=1;i<=m;i++){
fin>>x>>y;
e=put[y-x+1];
len=(1<<e);
fout<<min(r[e][x],r[e][y-len+1])<<"\n";
}
return 0;
}