Pagini recente » Cod sursa (job #2840134) | Cod sursa (job #3167237) | Cod sursa (job #289775) | Cod sursa (job #890526) | Cod sursa (job #3037694)
#include <fstream>
#include <cmath>
using namespace std;
ifstream cin("rmq.in");
ofstream cout("rmq.out");
int m[20][100002], n, q;
int crt, x, lung, st, dr, val;
int main ()
{
ios_base::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
cin>>n>>q;
for (int i=1; i<=n; i++)
cin>>m[1][i];
crt=1; val=(int)log2(n);
val++;
for (int i=2; i<=val; i++, crt*=2)
for (int j=1; j<=n-crt+1; j++)
m[i][j]=min(m[i-1][j], m[i-1][j+crt]);
while (q--)
{
cin>>st>>dr;
lung=dr-st+1;
crt=(int)log2(lung); crt++;
x=1<<(crt-1);
cout<<min(m[crt][st], m[crt][dr-x+1])<<'\n';
}
return 0;
}