Pagini recente » Cod sursa (job #185812) | Cod sursa (job #135536) | Statistici Molly Thomson (1giannae5222gh1) | Istoria paginii utilizator/kelemennandor4567 | Cod sursa (job #2048540)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("rmq.in");
ofstream g("rmq.out");
//const int maxx=(1<<30);
int v[132010],n,m;
int mat[132010][17];
int log, pow, k,mi;
int poz1,poz2,poz;
int main()
{
int i;
f>>n>>m;
//mi=maxx;
for (i=1;i<=n;i++)
{
f>>v[i];
// mi=min(mi,v[i]);
}
for (i=1;i<=n;i++)
{
mat[i][0]=v[i];
}
log=1;
while (log<n)
{
log*=2;
}
pow=1;
for (k=1;k<=log;k++)
{
pow*=2;
for (i=1;i<=n;i++)
{
mat[i][k]=min(mat[i][k-1],mat[i+pow/2][k-1]);
}
}
for(i=1;i<=m;i++)
{
log=1;
f>>poz1>>poz2;
poz=poz2-poz1;
while (log*2<poz) log*=2;
mi=min(mat[poz1][log],mat[poz2-log][log]);
g<<mi<<"\n";
}
return 0;
}