Pagini recente » Cod sursa (job #1274970) | Cod sursa (job #2949116) | Cod sursa (job #2107602) | Cod sursa (job #1034634) | Cod sursa (job #1054001)
#include<fstream>
#define dim 100006
using namespace std;
ifstream f("rmq.in");
ofstream g("rmq.out");
int rmq[20][dim];
int p[dim];
int n,Q,x,y,i,j;
inline int minim(int a,int b){
if(a<b)
return a;
return b;
}
int main () {
f>>n>>Q;
for(i=1;i<=n;++i){
f>>rmq[0][i];
}
for(i=2;i<=dim;++i){
p[i]=p[i/2]+1;
}
for(i=1;(1<<i)<=n ;++i ) {
for(j=1;j+(1<<i) -1<=n;++j){
rmq[i][j] =minim(rmq[i-1][j] ,rmq[i-1][j+(1<<(i-1))]);
}
}
for(i=1;i<=Q;++i) {
f>>x>>y;
int H=p[y-x+1];
g<<min(rmq[H][x],rmq[H][y-(1<<H)+1])<<"\n";
}
return 0;
}