Pagini recente » Cod sursa (job #2301352) | Cod sursa (job #3134176)
#include <iostream>
#include <fstream>
using namespace std;
int v[17][1000001];
int main()
{
//ifstream fin("nr.txt");
ifstream fin("rmq.in");
ofstream fout("rmq.out");
int n, m, a = 2, b = 1, c, d, e;
fin>>n>>m;
for(int i = 1; i <= n; i++)
fin>>v[i][0];
while(a <= n){
for(int i = 1; i <= n; i++)
v[i][b] = min(v[i][b-1], v[i+a/2][b-1]);
b++;
a *= 2;
}
for(int i = 1; i <= m; i++){
fin>>c>>d;
a = 1;
e = 0;
while(a*2 <= d-c+1){
a = a*2;
e++;
}
fout<<min(v[c][e], v[d-a+1][e])<<"\n";
}
fout.close();
fin.close();
return 0;
}