记录编号 165492 评测结果 AAAAAAAAAA
题目名称 延绵的山峰 最终得分 100
用户昵称 Gravatar0 是否通过 通过
代码语言 C++ 运行时间 0.166 s
提交时间 2015-06-11 21:35:41 内存使用 19.37 MiB
显示代码纯文本
#define MAX(a,b) ((a)>(b)?(a):(b))
 
#define MAXN 1000010
 
#define lson l,m,t
#define rson m+1,r,t|1
 
#include <cstdio>
 
using namespace std;
 
int tree[MAXN*5],pos,n,q,posl,posr;
 
inline int in(){
	int x=0;bool flag=0;char c=getchar();
	while(c<'0'||c>'9'){
		if(c=='-') flag=1;
		c=getchar();
	}
	for(;c>='0'&&c<='9';c=getchar()){
		x=x*10+c-48;
	}
	if(flag) return -x;
	return x;
}
 
void Build(int l,int r,int rt){
	if(l==r){
		tree[rt]=in();
		return;
	}
	int m=(l+r)>>1,t=rt<<1;
	Build(lson);
	Build(rson);
	tree[rt]=MAX(tree[t],tree[t|1]);
	return;
}
 
int Query(int l,int r,int rt){
	if(posl<=l&&posr>=r){
		return tree[rt];
	}
	int m=(l+r)>>1,t=rt<<1,Max=0;
	if(posl<=m){
		int tp=Query(lson);
		Max=MAX(Max,tp);
	}
	if(posr>m){
        int tp=Query(rson);
		Max=MAX(Max,tp);
	}
	return Max;
}
 
int main(){
	freopen("climb.in","r",stdin);
	freopen("climb.out","w",stdout);
	n=in();
	Build(0,n,1);
	q=in();
	for(int i=1;i<=q;i++){
	    posl=in();posr=in();
	    printf("%d",Query(0,n,1));
	}
	return 0;
}