Pagini recente » Cod sursa (job #2259631) | Cod sursa (job #1813946) | Cod sursa (job #2776253) | Cod sursa (job #1260241) | Cod sursa (job #3122720)
#include<fstream>
#include<cmath>
using namespace std;
int m,n,v[100001],puteri[100001],r=0,rmq[20][100001];
ifstream cin("rmq.in");
ofstream cout("rmn.out";)
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>v[i];
if(i>(1<<n)) r++;
puteri[i]=r;
}
for(int i=1;i<=n;i++)rmq[0][i]=v[i];
for(int i=1;i<puteri[n];i++)
{
for(int j=1;j<=n-(1<<(i-1));j++)
{
int es=j-(1<<(i))-1;
rmq[i][j]=min(rmq[i][j],rmq[i][es]);
}
}
int a,b;
for(int i=1;i<=m;i++)
{
cin>>a>>b;
int v=puteri[b-a];
int m=min(rmq[v][a],rmq[v][b-(1<<v)+1]);
cout<<m;
}
return 0;
}