#include<cstdio>
#include<cstring>
#define Max2(a,b) (a>b?a:b)
int x[1000007][25];
int main(){
int n,m;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
scanf("%d",&x[0][i]);
int t=2,tt;
for(tt=1;t<=n;tt++,t<<=1){
int h=t/2;
for(int j=1;j<=n-t+1;j++)
x[tt][j]=Max2(x[tt-1][j],x[tt-1][j+h]);
}
for(int i=1;i<=m;i++){
int a,b;
scanf("%d%d",&a,&b);
int u=b-a+1,k=t,kk=tt;
for(;k>u;k>>=1,kk--);
printf("%d\n",Max2(x[kk][a],x[kk][b-k+1]));
}
}
代码
求大佬帮忙找一下错误
帮我的人CSP2020 RP=INF