Pagini recente » Cod sursa (job #2154619) | Cod sursa (job #703049) | Cod sursa (job #1054848) | Cod sursa (job #1665232) | Cod sursa (job #2837648)
#include <fstream>
#define INF 1000000000
using namespace std;
ifstream cin "rmq.in");
ofstream cout("rmq.out");
int v[17][100010];
int x[100010];
int n,m,i,j,st,dr,minim,p,poz,len;
int main () {
cin>>n>>m;
for (i=1;i<=n;i++) {
cin>>v[0][i];
}
for (p=1;(1<<p)<= n;p++) {
for (i=1;i<=n;i++) {
v[p][i]=v[p-1][i];
j=i+(1<<(p-1));
if (j<=n&&v[p][i]>v[p-1][j]) {
v[p][i]=v[p-1][j];
}
}
}
x[1]=0;
for (i=2;i<=n;i++)
x[i]=1+x[i/2];
for (i=1;i<=m;i++) {
fin>>st>>dr;
poz=x[dr-st+1];
len = (1<<e);
cout<<min(v[poz][st],v[poz][dr-len+1])<<"\n";
}