Pagini recente » Cod sursa (job #2491478) | Cod sursa (job #2231942) | Cod sursa (job #2192229) | Cod sursa (job #1100176) | Cod sursa (job #1688690)
#include <fstream>
#include<iostream>
#include<cmath>
using namespace std;
ifstream fin("rmq.in");
ofstream fout("rmq.out");
int rmq[17][100010];
int n,i,j,a,b,m,k,auxx;
int poww(int a,int b)
{
int sol=1;
while(b--)
{
sol*=a;
}
return sol;
}
int main()
{
fin>>n>>m;
for(i=1;i<=n;++i)
{
fin>>rmq[0][i];
}
auxx=(int)(log(n)/log(2));
for(i=1;i<=auxx;++i)
{
for(j=1;j<=n;++j)
{
rmq[i][j]=min(rmq[i-1][j],rmq[i-1][j+poww(2,i-1)]);
}
}
for(i=1;i<=m;++i)
{
fin>>a>>b;
k=(int)(log(b-a)/log(2));
fout<<min(rmq[k][a],rmq[k][b-poww(2,k)+1])<<'\n';
}
return 0;
}