Pagini recente » Cod sursa (job #368172) | Cod sursa (job #632039) | Cod sursa (job #1580349) | Cod sursa (job #2477577) | Cod sursa (job #2270435)
#include <iostream>
#include <fstream>
using namespace std;
#define NR 100001
int r[18][NR],log[NR];
int main()
{
int m,n,y,l,rez,i,jj,j,a,b;
ifstream f("rmq.in");
f>>n>>m;
for(i=1; i<=n; i++)
f>>r[0][i];
log[1]=0;
for(i=2; i<=n; i++)
{
log[i]=1+log[i/2];
}
for(i=1; (1<<i)<=n; i++)
{
for(j=(1<<i); j<=n; j++)
{
r[i][j]=min(r[i-1][j-(1<<(i-1))], r[i-1][j]);
}
}
ofstream g ("rmq.out");
for(i=1; i<=m; i++)
{
f>>a;
f>>b;
l=log[b-a+1];
rez=min(r[l][a+(1<<l)-1],r[l][b]);
g<<rez<<"\n";
}
g.close();
return 0;
}