Pagini recente » Cod sursa (job #1271670) | Cod sursa (job #591392) | Cod sursa (job #1345241) | Cod sursa (job #2428317)
#include <bits/stdc++.h>
#define maxim 100004
using namespace std;
ifstream f("rmq.in");
ofstream g("rmq.out");
int n,m,dp[maxim][19];
int main()
{
f>>n>>m;
int x,y;
for (int i=1;i<=n;i++)
{
f>>x;
dp[i][0]=x;
}
for (int i=n; i>= 1; i--)
for (int j=1; i+(1<<j)-1 <= n ; j++)
dp[i][j]=min(dp[i][j-1], dp [ i +( 1<<(j-1))][j-1]);
while (m--)
{
f>>x>>y;
int d=y-x+1;
int l=(int)log2(d);
g<<min(dp[x][l], dp[x+d-(1<<l)][l])<<'\n';
}
}