rt,代码如下,提交记录
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define pr pair<int,int>
#define fi first
#define se second
#define mr(x, y) make_pair((x), (y))
int read(){
int s=0, f=1;
char c=getchar();
while((c<'0' || c>'9') && c!='-')c=getchar();
if(c=='-') c=getchar(), f=-1;
while(c>='0' && c<='9')s=s*10+c-'0', c=getchar();
return s;
}
int pu(int x){
if(x<0){
putchar('-');
pu(-x);
}
else if(x<10)
putchar(x+'0');
else{
pu(x/10);
putchar(x%10+'0');
}
}
int st[100005][18];
signed main(){
int n=read(), m=read();
pu(n);
for(int i=1;i<=n;i++)
st[i][0]=read();
for(int j=1;j<=log2(n);j++)
for(int i=1;i+(1<<j)<=n+1;i++)
st[i][j]=max(st[i][j-1], st[i+(1<<j-1)][j-1]);
while(m--){
int l=read(), r=read();
int k=log2(r-l+1);
pu(max(st[l][k], st[r-(1<<k)+1][k]));
putchar('\n');
}
return 0;
}