Pagini recente » Cod sursa (job #2075262) | Cod sursa (job #67936) | Cod sursa (job #239398) | Cod sursa (job #835256) | Cod sursa (job #1664823)
#include <iostream>
#include <fstream>
#define NN 1000
using namespace std;
ifstream in("in");
ofstream out("out");
int n,l[NN],r[NN][NN],v[NN],x,y,m;
int mic(int x, int y){
if(x<y) return x;
return y;
}
void logus (){
l[1]=0;
for(int i=2;i<=n;i++)
l[i]=l[i/2]+1;
}
void rmat (){
for(int i=1;i<=n;i++){
r[i][0]=v[i];
for(int j=1;(1<<j)<=i;j++){
int k=i-(1<<(j-1));
r[i][j]=mic(r[i][j-1],r[k][j-1]);
}
}
}
int rmq(int a,int b){
return mic(r[b][l[b]],r[a+(1<<l[a])-1][l[a]]);
}
void read(){
in>>n>>m;
for(int i=1;i<=n;i++){
in>>v[i];
}
}
int main()
{
read();
logus();
rmat();
while(m--){
in>>x>>y;
out<<rmq(x,y)<<'\n';
}
return 0;
}