Pagini recente » Cod sursa (job #1249197) | Cod sursa (job #2290920) | Cod sursa (job #1913520) | Cod sursa (job #144161) | Cod sursa (job #2837388)
#include <fstream>
using namespace std;
ifstream fin ("rmq.in");
ofstream fout("rmq.out");
int v[17][100010], E[100010];
int n, m, i, j, st, dr, minim, p, e, len;
int main () {
fin>>n>>m;
for(i=1;i<=n;i++)
fin>>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][i])
v[p][i]=v[p-1][i];
}
E[1]=0;
for(i=2;i<=n;i++)
E[i]=1+E[i/2];
for(i=1;i<=m;i++){
fin>>st>>dr;
e=E[dr-st+1];
len=(1<<e);
fout<<min(v[e][st], v[e][dr-len+1])<<"\n";
}
}