Pagini recente » Cod sursa (job #3216786) | Cod sursa (job #349332) | Cod sursa (job #2778213) | Cod sursa (job #149284) | Cod sursa (job #3000197)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("rmq.in");
ofstream fout("rmq.out");
int n,ep2,m,i,p,ind,z,j,x,lg,mini,rmq[1002][100012];
int main()
{
fin>>n>>m;
for(i=1;i<=n;i++)
fin>>rmq[0][i];
for(ep2=1,p=2;p<=n;p=p*2,ep2++)
{
for(ind=1;ind<=n-p+1;ind++)
{
rmq[ep2][ind]=min(rmq[ep2-1][ind] , rmq[ep2-1][ind+p/2]);
}
}
for(z=1;z<=m;z++)
{
fin>>i>>j;
lg=j-i+1;
x=log2(lg);
mini=min(rmq[x][i] , rmq[x][j-(1<<x)+1]);
fout<<mini<<'\n';
}
return 0;
}