Pagini recente » Cod sursa (job #2077900) | Cod sursa (job #411538) | Cod sursa (job #1934139) | Cod sursa (job #1035790) | Cod sursa (job #304808)
Cod sursa(job #304808)
#include<fstream.h>
int m[100000][18],N,M,x,y,A[100000],i,j,k,lg2[100000];
inline int min(int x,int y)
{return x<y?x:y;}
int main()
{ifstream f("rmq.in");
ofstream g("rmq.out");
f>>N>>M;
for(;i<N;++i)
{f>>A[i];m[i][0]=A[i];}
for(i=2;i<=N;++i)
lg2[i]=lg2[i/2]+1;
for(j=1;1<<j<=N;++j)
{k=1<<j-1;
for(i=0;i+2*k-1<N;++i)
m[i][j]=min(m[i][j-1],m[i+k][j-1]);}
for(;M;--M)
{f>>x>>y;--x;--y;
k=lg2[y-x+1];
g<<min(m[x][k],m[y-(1<<k)+1][k])<<'\n';
}
return 0;
}