Pagini recente » Cod sursa (job #3226671) | Cod sursa (job #1123029) | Cod sursa (job #973624) | Cod sursa (job #361419) | Cod sursa (job #2705736)
#include <bits/stdc++.h>
#define ll long long
//#define int ll
using namespace std;
ifstream f ("rmq.in");
ofstream g ("rmq.out");
int mod=666013;
int n,m,rmq[100005][25];
int p2[100005];
main()
{
f>>n>>m;
for(int i=2;i<=n;i++) p2[i]=p2[i/2]+1;
for(int i=1;i<=n;i++) f>>rmq[i][0];
for(int j=1;(1<<j)<=n;++j)
for(int i=1;i<=n -(1<<j)+1;i++)
{
rmq[i][j]=min(rmq[i][j-1],rmq[i+(1<<(j-1))][j-1]);
}
for(int i=1;i<=m;i++)
{
int x,y;
f>>x>>y;
int d=y-x+1;
int l = p2[d];
g<<min(rmq[x][l],rmq[x + d - (1<<l)][l])<<'\n';
}
}