Pagini recente » Cod sursa (job #705520) | Cod sursa (job #2751075) | Cod sursa (job #1990099) | Cod sursa (job #28673) | Cod sursa (job #563551)
Cod sursa(job #563551)
#include<fstream>
#define N_MAX 100011
#define Log2N_MAX 17
using namespace std;
int v[N_MAX][Log2N_MAX],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+(1<<(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;
}