Pagini recente » Cod sursa (job #1460599) | Cod sursa (job #2601151) | Cod sursa (job #954995) | Cod sursa (job #3244551) | Cod sursa (job #2238819)
#include <fstream>
using namespace std;
int a[20][100010], n, lg[100010], minn, lin, nr, x, y, lun;
int main() {
ifstream cin ("rmq.in");
ofstream cout ("rmq.out");
cin >> n >> nr;
for (int i=1; i<=n; i++)
cin >> a[0][i];
for (int i=2; i<=100000; i++)
lg[i] = lg[i/2] + 1;
for (int i=1; i<= lg[n]; i++)
for (int j=1; j <= n - (1<<(i-1)); j++)
a[i][j] = min (a[i-1][j], a[i-1][j + (1<<(i-1))]);
for (int i = 1; i<=nr; i++)
{
cin >> x >> y;
lun = y - x + 1;
lin = lg[lun];
minn = min (a[lin][x], a[lin][y-(1<<lin) + 1]);
cout << minn << '\n';
}
return 0;
}