Pagini recente » Cod sursa (job #227972) | Cod sursa (job #773774) | Cod sursa (job #1312944) | Cod sursa (job #1346032) | Cod sursa (job #1174129)
#include<fstream>
#include<cmath>
using namespace std;
int a[100000][17];
int main() {
ifstream fin("rmq.in");
ofstream fout("rmq.out");
int i, j, n, m, x, y, pas = 0, log;
fin >> n >> m;
log = (int) log2f(n);
for(i = 0; i < n; i++) fin >> a[i][0];
for(i = 1; i <= log; i++) {
pas = (1 << i-1);
for(j = 0; j < n - pas + 1; j++) {
a[j][i] = min(a[j][i-1], a[j+pas][i-1]);
}
}
for(i = 0; i < m; i++) {
fin >> x >> y;
x--, y--;
log = (int) log2f(y-x);
fout << min(a[x][log], a[y-(1 << log)+1][log]) << "\n";
}
return 0;
}