Pagini recente » Cod sursa (job #3209220) | Cod sursa (job #496501) | Cod sursa (job #1328877) | Cod sursa (job #1776011) | Cod sursa (job #2900663)
#include <iostream>
#include <fstream>
#include <vector>
#include <cmath>
using namespace std;
ifstream fin("rmq.in");
ofstream fout("rmq.out");
int main()
{
int x, y, n, m, l2n;
fin >> n >> m;
l2n = int(log2(n));
int matrix[n+1][l2n+1];
for(int i = 0; i < n; i++)
fin >> matrix[i][0];
for(int j = 1; (1<<j) <= n; j++)
for(int i = 0; i + (1<<j) <= n; i++)
matrix[i][j] = min(matrix[i][j-1],matrix[i+(1<<(j-1))][j-1]);
for(int i = 1; i <= m; i++)
{
fin >> x >> y;
x--; y--;
int l2_dim = int(log2(y-x+1));
cout << l2_dim;
fout << min(matrix[x][l2_dim], matrix[y-(1<<l2_dim)+1][l2_dim]) << '\n';
}
}