#include using namespace std; int f[100001][30],n,m; void init(int n)//计算区间预处理 { for(int i = 1;1<f[j+(1<<(k))][k] ? f[j][k] : f[j+(1<<(k))][k];} } inline int query(int L,int R)//查询 { int s = log2(R-L+1); //return max(f[L][s],f[R-(1<f[R-(1<>n>>m; for(int i = 1;i <= n;i++)f[i][0]=read();//读入数据 init(n); int L,R; while(m--) { L=read();R=read(); printf("%d\n",query(L,R)); } return 0; }