Pagini recente » Cod sursa (job #2697065) | Cod sursa (job #1812690) | Cod sursa (job #266327) | Cod sursa (job #2815973) | Cod sursa (job #2864910)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("rmq.in");
ofstream fout("rmq.out");
int matrice[43][10010];
int v[100010], x, y, l;
int n, m;
int main()
{
fin >> n >> m;
for (int i = 2; i <= 100010; i++)
{
v[i] = v[i / 2] + 1;
}
for (int i = 1; i <= n; i++)
{
fin >> matrice[0][i];
}
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n - (1 << i) + 1; j++)
{
matrice[i][j] = min(matrice[i - 1][j], matrice[i - 1][j + (1 << (i - 1))]);
}
}
while (m--)
{
fin >> x >> y;
l = y - x + 1;
fout << min(matrice[v[l]][x], matrice[v[l]][y - (1 << [l]) + 1]) << '\n';
}
}