Pagini recente » Cod sursa (job #3150917) | Cod sursa (job #750440) | Cod sursa (job #3189128) | Cod sursa (job #1295313) | Cod sursa (job #1784755)
#include <fstream>
#include <math.h>
using namespace std;
ifstream ka("rmq.in");
ofstream ki("rmq.out");
const int N_MAX = 100000;
const int SQRT_MAX = 317;
int a, b, n, m, x, v[N_MAX + 1], bb[SQRT_MAX + 1];
int main()
{
ka >> n >> m;
int t = (int)sqrt(n) + 1;
for(int i = 0; i <= t; i++)
bb[i] = 0x7fffffff;
for(int i = 1; i <= n; i++)
{
ka >> x;
v[i] = x;
bb[i / t] = min(bb[i / t], x);
}
for(int i = 1; i <= m; i++)
{
ka >> a >> b;
int minim = 0x7fffffff;
int j;
for(j = a; j % t != 0; j++)
minim = min(minim, v[j]);
for(; b - j > t; j += t)
minim = min(minim, bb[j / t]);
for(; j <= b; j++)
minim = min(minim, v[j]);
ki << minim << '\n';
}
}