Pagini recente » Cod sursa (job #2256612) | Cod sursa (job #3151339) | Cod sursa (job #1012777) | Cod sursa (job #2260810) | Cod sursa (job #3132761)
#include <iostream>
#include <fstream>
#include <cmath>
ifstream f("rmq.in");
ofstream g("rmq.out");
int v[100001][17];
int main(){
int n, m, min, x , y, i, p , lung;
f >> n >> m;
for( i = 1; i <= n; i++)
f >> v[i][0];
for( p = 1; p < 17; p++)
for( i = 1; i + (1 << p) - 1 <= n; i++)
v[i][p] = min(v[i][p - 1], v[i + (1 << (p - 1))][p - 1]);
for( i = 0; i < m; i++){
f >> x >> y;
lung = y - x + 1;
p = log2(lung);
min = min(v[x][p], v[y - (1 << p) + 1][p]);
g << min << endl;
}
return 0;
}