Pagini recente » Cod sursa (job #362044) | Cod sursa (job #2430618) | Cod sursa (job #2017276) | Profil Stefannnnn | Cod sursa (job #2764271)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("rmq.in");
ofstream fout("rmq.out");
int N,M,x,lg[100005],D[105][100005],y,i,j,a,b,k;
int main()
{
fin>>N>>M;
for(i=1; i<=N; i++)
{
fin>>x;
D[0][i]=x;
}
lg[1]=0;
for(i=2; i<=100005; i++) lg[i]=lg[i/2]+1;
for(i=1; i<=lg[N]; i++)
{
for(j=1; j<=N; j++)
{
y=1<<(i-1);
D[i][j]=min(D[i-1][j],D[i-1][j+y]);
}
}
for(i=1; i<=M; i++)
{
fin>>a>>b;
k=lg[b-a];
fout<<min(D[k][a],D[k][b-(1<<(k))+1])<< '\n';
}
return 0;
}