Pagini recente » Borderou de evaluare (job #3151482) | Borderou de evaluare (job #3186919) | Borderou de evaluare (job #2754066) | Cod sursa (job #587403) | Cod sursa (job #2916072)
#import<fstream>
#import<vector>
#import<cmath>
#import<algorithm>
using namespace std;
int a[100001][17];
main()
{
ifstream cin("rmq.in");
ofstream cout("rmq.out");
int n,q;
cin>>n>>q;
for(int i=1;i<=n;i++)
{
cin>>a[i][0];
}
for(int j=1;(1<<(j-1))<=n;j++)
{
for(int i=1;i+(1<<(j-1))<=n;i++)
{
a[i][j]=min(a[i][j-1],a[i+(1<<(j-1))][j-1]);
}
}
while(q--)
{
int st,dr;
cin>>st>>dr;
int lg=(int)log2(dr-st+1);
cout<<min(a[st][lg],a[dr-(1<<lg)+1][lg])<<'\n';
}
}