Pagini recente » Cod sursa (job #2884191) | Cod sursa (job #2599666) | Cod sursa (job #2052966) | Cod sursa (job #244257) | Cod sursa (job #1246422)
#include<fstream>
#include<algorithm>
#define nmax 100001
#include<iostream>
using namespace std;
int x,y,v[16][nmax],i,j,n,m;
void fct()
{
for(i=1;(1<<i)<=n;++i)
for(j=0;j<=n-(1<<i);++j)
v[i][j]=min(v[i-1][j],v[i-1][j+(1<<(i-1))]);
}
int fin()
{
int d=y-x+1;
int p=0;
for(;(1<<p)<=d;++p);
--p;
return min(v[p][x-1],v[p][y-(1<<p)]);
}
int main()
{
ifstream si;
si.open("rmq.in");
ofstream so;
so.open("rmq.out");
si>>n>>m;
for(i=0;i<n;++i)
si>>v[0][i];
fct();
for(i=0;i<m;++i)
{
si>>x>>y;
so<<fin()<<endl;
}
}