Pagini recente » Cod sursa (job #2588320) | Cod sursa (job #1591795) | Cod sursa (job #1686361) | Cod sursa (job #940342) | Cod sursa (job #3257309)
#include <bits/stdc++.h>
#define NN 100005
using namespace std;
ifstream fin ("rmq.in");
ofstream fout ("rmq.out");
int n, m, v[NN], rmq[NN][55], a, b, r, k;
int main()
{
fin >> n >> m;
for(int i = 1 ; i <= n ; i++)
{
fin >> v[i];
rmq[i][0] = v[i];
}
for(int i = 1 ; (1 << i) <= n ; i++)
{
for(int j = 1 ; j + (1 << i) - 1 <= n ; j++)
rmq[j][i] = min(rmq[j][i-1], rmq[j + (1 << (i - 1))][i-1]);
}
for(int i = 1 ; i <= m ; i++)
{
fin >> a >> b;
k = log2(b-a+1);
r = min(rmq[a][k], rmq[b - (1 << k) + 1][k]);
fout << r << '\n';
}
return 0;
}