Pagini recente » Cod sursa (job #2192570) | Cod sursa (job #1448353) | Cod sursa (job #2399766) | Cod sursa (job #3249538) | Cod sursa (job #2986946)
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 7;
const int L = 17;
ifstream fin("rmq.in");
ofstream fout("rmq.out");
int n, m, a[L][N];
int main()
{
fin>>n>>m;
for (int i = 1; i <= n; i++)
fin>>a[0][i];
for (int i = 1, p = 2; p <= n; i++, p *= 2)
for (int j = 1; j <= n - p / 2; j++)
a[i][j] = min(a[i - 1][j], a[i - 1][j + p/2]);
for (int i = 1; i <= m; i++)
{
int l, r, len, k;
fin>>l>>r, len = r - l + 1, k = __lg(len);
fout<<min(a[k][l], a[k][r - (1<<k) + 1])<<"\n";
}
return 0;
}