Pagini recente » Cod sursa (job #1499427) | Cod sursa (job #1654392) | Cod sursa (job #2841822) | Cod sursa (job #2749709) | Cod sursa (job #2626121)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream f("rmq.in.txt");
ofstream g("rmq.out");
int n,m,rmq[20][100002],i,j,k,a,b;
int main()
{
f>> n >> m;
for (int i = 1; i <= n; i++)
f>> rmq[0][i];
for (int i = 1; (1 << i) <= n; i++)
for (int j = 1; j <= n; j++)
rmq[i][j] = min(rmq[i - 1][j], rmq[i - 1][j + (1 << (i - 1))]);
while (m)
{
f>>a>>b;
k=0;
while ((1<<k) <=b+1-a)
k++;
k--;
g<<min(rmq[k][a],rmq[k][b+1-(1<<k)])<<'\n';
m--;
}
f.close();
g.close();
}