Pagini recente » Cod sursa (job #2290183) | Cod sursa (job #606189) | Cod sursa (job #235636) | Cod sursa (job #2463398) | Cod sursa (job #2485636)
#include <fstream>
using namespace std;
int dp[100001][20], intLg2[100001] = {-1};
int main()
{
ios_base::sync_with_stdio(false);
ifstream fin{"rmq.in"};
ofstream fout{"rmq.out"};
int N, M;
fin >> N >> M;
for(int i = 1; i <= N; ++i)
fin >> dp[i][0],
intLg2[i] = intLg2[i >> 1] + 1;
for(int i = 1; i <= intLg2[N]; ++i)
for(int j = 1; j - 1 + (1 << i) <= N; ++j)
dp[j][i] = min(dp[j][i - 1], dp[j + (1 << (i - 1))][i - 1]);
for(int x, y, k, i = 1; i <= M; ++i)
fin >> x >> y,
k = intLg2[y - x + 1],
fout << min(dp[x][k], dp[y + 1 - (1 << k)][k]) << '\n';
}