Pagini recente » Cod sursa (job #3232056) | Cod sursa (job #3148431) | Cod sursa (job #2834558) | Cod sursa (job #3280749) | Cod sursa (job #2901124)
#include <fstream>
#include <vector>
#include <cmath>
#define size 100000
#define logsize 17
using namespace std;
ifstream f("rmq.in");
ofstream g("rmq.out");
long long n,m,op,j,v[100001],mat[size][logsize];
long long minim(long long st,long long dr)
{
long long s = dr-st+1,nr = 0;
nr = (long long )log2(s);
return min(mat[st][nr],mat[dr- (long long )pow(2,nr)+1][nr]);
}
int main()
{
f>>n>>m;
long long i;
for(i = 0;i<n;i++)
{
f>>v[i];
mat[i][0] = v[i];
}
for(j = 1;j<=logsize;j++)
for(i = 0;i+ (long long ) pow(2,j)-1<n;i++)
mat[i][j] = min(mat[i][j-1],mat[i+ (long long) pow(2,(j-1))][j-1]);
long long a,b;
for(i = 0;i<m;i++)
{
f>>a>>b;
g<<minim(a-1,b-1)<<'\n';
}
f.close();g.close();
}