ST表
int main() { cin>>n>>m; for(int i=1;i<=n;i++)d[i][0]=read(); for(int j=1;(1<<j)<=n;j++) for(int i=1;i-1+(1<<j)<=n;i++) d[i][j]=max(d[i][j-1],d[i+(1<<(j-1))][j-1]); while(m--) { l=read();r=read(); k=log2(r-l+1); printf("%d\n",max(d[l][k],d[r-(1<<k)+1][k])); } }