Pagini recente » Cod sursa (job #3189898) | Cod sursa (job #1502779) | Cod sursa (job #2035664) | Cod sursa (job #2013462) | Cod sursa (job #2902056)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("rmq.in");
ofstream fout("rmq.out");
int matrice[17][100001], n, m, x, y, log2[100001], interval;
int main()
{
fin >> n >> m;
for(int i = 1; i <= n; i++)
fin >> matrice[0][i];
log2[1] = 0;
for(int i = 2; i <= n ; i++)
log2[i] = log2[i/2] + 1;
for (int i = 1; 1 << i <= n; i++)
for (int j = 1; j + (1 << i) - 1 <= n; j++)
matrice[i][j] = min(matrice[i - 1][j], matrice[i - 1][j + (1 << (i - 1))]);
for(int i = 0; i < m ; i++){
fin >> x >> y;
interval = y - x + 1;
fout << min(matrice[log2[interval]][x], matrice[log2[interval]][y - (1 << log2[interval]) + 1]) << '\n';
}
return 0;
}