Pagini recente » Atasamentele paginii Profil zavoianub | Istoria paginii utilizator/mada0222 | Rezultatele filtrării | Rezultatele filtrării | Cod sursa (job #2309687)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("rmq.in");
ofstream fout ("rmq.out");
#define NMAX 100003
int rmq [NMAX][19], v [NMAX];
int n, m, x, y;
int main (){
fin >> n >> m;
for (int i = 1; i <= n; i ++)fin >> v [i];
for (int i = 1; i <= n; i ++)rmq [i][0] = v [i];
for (int k = 1; (1 << k) <= n; k ++)
for (int i = 1; i + (1 << k) <= n + 1; i ++)
rmq [i][k] = min (rmq [i][k - 1], rmq [i + (1 << (k - 1))][k - 1]);
for (int i = 0; i < m; i ++){
fin >> x >> y;
int nr = log2 (y - x + 1);
fout << min (rmq [x][nr], rmq [y - (1 << nr) + 1][nr]) << '\n';
}
return 0;
}