Pagini recente » Cod sursa (job #1040764) | Cod sursa (job #1694540) | Cod sursa (job #1531844) | Cod sursa (job #2184568) | Cod sursa (job #1837387)
#include <fstream>
using namespace std;
ifstream f("rmq.in");
ofstream g("rmq.out");
int N,M,x,y,i,j,lg[100010],V[17][100010];
int main()
{
f>>N>>M;
lg[0]=-1;
for(j=1;j<=N;++j)
{
f>>V[0][j];
lg[j]=lg[j>>1]+1;
}
for(i=1;(1<<i)<=N;++i)
for(j=1;j<=N-(1<<i)+1;++j)
V[i][j]=min(V[i-1][j],V[i-1][j+(1<<(i-1))]);
while(f>>x>>y) g<<min(V[lg[y-x+1]][x],V[lg[y-x+1]][y-(1<<lg[y-x+1])+1])<<'\n';
return 0;
}