Pagini recente » Cod sursa (job #683166) | Cod sursa (job #2284001) | Cod sursa (job #2488880) | Cod sursa (job #1535402) | Cod sursa (job #2622749)
#include <bits/stdc++.h>
using namespace std;
ifstream in("rmq.in");
ofstream out("rmq.out");
int n,m;
int mx[100005][20];
int main()
{
int n,m,minimuri[100009][18];
in>> n >> m;
for(int i=1; i<=n; i++) {
in >> minimuri[i][0];
}
for(int j=1;j<=18;j++)
{
for(int i=1;i<=n-(1<<(j))+1;i++)
{
minimuri[i][j]=std::min(minimuri[i][j-1],minimuri[i+(1<<(j-1))][j-1]);
}
}
for (int i=1;i<=m;++i)
{
int st,dr;
in>>st>>dr;
int poz=log2(dr-st+1);
out<<std::min(minimuri[st][poz],minimuri[dr-(1<<poz)+1][poz])<<"\n";
}
return 0;
}