Pagini recente » Cod sursa (job #1045080) | Cod sursa (job #516181) | Cod sursa (job #2692918) | Cod sursa (job #3201616) | Cod sursa (job #2790440)
#include <fstream>
#define dim 100010
using namespace std;
int a[20][dim];
int log[dim];
int i,k,n,m,st,dr,len;
int main() {
ifstream fin("rmq.in");
ofstream fout("rmq.out");
fin>>n>>m;
for (i=1;i<=n;i++) {
fin>>a[0][i];
}
for (i=2;i<=n;i++) {
log[i]=log[i/2]+1;
}
for (k=1;k<=log[n];k++) {
for (i=1;i<=n-(1<<k)+1;i++) {
a[k][i]=min(a[k-1][i],a[k-1][i+(1<<k-1)]);
}
}
for (;m--;) {
fin>>st>>dr;
len=dr-st+1;
k=log[len];
fout<<min(a[k][st],a[k][dr-(1<<k)+1])<<"\n";
}
return 0;
}