Pagini recente » Cod sursa (job #251127) | Cod sursa (job #2254609) | Cod sursa (job #1450051) | Cod sursa (job #2612196) | Cod sursa (job #563538)
Cod sursa(job #563538)
#include<fstream>
#include<cmath>
using namespace std;
int v[100005][30],n,i,j,x,y,m,k;
int mini(int q,int w)
{
if(q<w)
return q;
return w;
}
int main()
{ifstream f("rmq.in");
f>>n>>m;
for(i=1;i<=n;i++)
f>>v[i][0];
ofstream g("rmq.out");
for(i=1;(1<<i)<=n;i++)
for(j=1;j+i<=n;j++)
v[j][i]=mini(v[j][i-1],v[j+(1<<(i-1))][i-1]);
for(i=1;i<=m;i++)
{ f>>x>>y;
k=31-__builtin_clz(y-x+1);
g<<mini(v[x][k],v[y-(1<<k)+1][k])<<'\n';
}
f.close(); g.close();
return 0;
}