Pagini recente » Cod sursa (job #1432646) | Cod sursa (job #1860028) | Cod sursa (job #2225157) | Cod sursa (job #2393155)
#include <fstream>
#define Nmax 100005
using namespace std;
ifstream fin ("rmq.in");
ofstream fout ("rmq.out");
int a[Nmax], m[Nmax][30], i, j, k, n, q, x, y, lg;
int main()
{
fin >> n >> q;
for(i=1;i<=n;i++)
fin >> a[i];
for(i=1;i<=n;i++)
m[i][0]=a[i];
for(j=1;(1<<j)<=n+1;j++)
for(i=1;i+(1<<j)-1<=n;i++)
m[i][j]=min(m[i][j-1], m[i+(1<<(j-1))][j-1]);
for(i=1;i<=q;i++)
{
fin >> x >> y;
lg=y-x+1;
for(k=1;1<<(k+1)<=lg;k++);
fout << min(m[x][k], m[y-(1<<k)+1][k]) << '\n';
}
return 0;
}