记录编号 500342 评测结果 AAAAAAAAAA
题目名称 延绵的山峰 最终得分 100
用户昵称 Gravatar雨季 是否通过 通过
代码语言 C++ 运行时间 0.215 s
提交时间 2018-07-11 21:01:01 内存使用 30.83 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
using namespace std;
#define N 1000005
#define lch (o<<1)
#define rch (o<<1|1)
#define mid ((l+r)>>1)

int n;

int mav[N<<2],a[N<<2];
void build(int o,int l,int r) {
	if(l==r) {
//		scanf("%d",&mav[o]);
		mav[o]=a[l];
		return;
	}
	build(lch,l,mid);
	build(rch,mid+1,r);
	mav[o]=max(mav[lch],mav[rch]);
}
int query(int o,int l,int r,int L,int R) {
	if(L==l&&r==R) return mav[o];
	if(R<=mid) return query(lch,l,mid,L,R);
	else if(L>mid) return query(rch,mid+1,r,L,R);
	else return max(query(lch,l,mid,L,mid),query(rch,mid+1,r,mid+1,R)); 
}

int main()
{
	freopen("climb.in","r",stdin);
	freopen("climb.out","w",stdout);
	scanf("%d",&n);n++;
	for(int i=1;i<=n;++i) scanf("%d",&a[i]);
	build(1,1,n);
	int T,l,r;
	scanf("%d",&T);
	while(T--) {
		scanf("%d%d",&l,&r),l++,r++;
		printf("%d\n",query(1,1,n,l,r));
	}
	return 0;
}
/*
10
0
1
2
3
2
3
4
3
2
1
0
5
0 10
2 4
3 7
7 9
8 8
*/