Pagini recente » Cod sursa (job #149997) | Cod sursa (job #393990) | Cod sursa (job #1676968) | Cod sursa (job #1387908) | Cod sursa (job #1500413)
#include<fstream>
#include<algorithm>
using namespace std;
#define MI(a,b) (a<b? a:b)
ifstream in("rmq.in");
ofstream out("rmq.out");
#define MAX 100001
int N;
int A[18][MAX],i,j,M;
int main()
{
in >> N>>M;
for (i = 1;i <= N;++i)
in >> A[0][i];
for (i = 1;(1 << i) <= N;++i)
{
for (j = 1;j <= N - (1 << i) + 1;++j)
{
A[i][j] = MI(A[i - 1][j], A[i - 1][j + (1 << (i - 1))]);
}
}
int a, b;
while (in >> a && in >> b)
{
int l=0;
while (1 << l <= b - a + 1)
++l;
--l;
out << MI(A[l][a], A[l][b - (1<<l) + 1]) << '\n';
}
return 0;
}