记录编号 615554 评测结果 AAAAAAAAAA
题目名称 58.延绵的山峰 最终得分 100
用户昵称 GravatarPigFlies 是否通过 通过
代码语言 C++ 运行时间 0.411 s
提交时间 2026-05-14 19:55:15 内存使用 19.51 MiB
显示代码纯文本
#include <iostream>
using namespace std;
int n,logn,q,a,b;
int st[20][1000006];
int log(int x)
{
    int sum=0;
    while(x)x>>=1,sum++;
    return sum-1;
}
int main()
{
    freopen("climb.in","r",stdin);
    freopen("climb.out","w",stdout);
    scanf("%d",&n);
    for(int i=0;i<=n;++i)
    {
        scanf("%d",&st[0][i]);
//        printf("%d ",st[0][i]);
    }
//    printf("\n");
    for(int i=1;1<<i<=n;i++)
    {
        for(int j=0;(j+(1<<i)-1)<=n;j++)
        {
            st[i][j]=max(st[i-1][j],st[i-1][j+(1<<(i-1))]);
//            printf("%d:%d ",j,st[i][j]);
        }
//        printf("\n");
    }
    scanf("%d",&q);
    while(q--)
    {
        scanf("%d%d",&a,&b);
        logn=log(b-a+1);
        printf("%d\n",max(st[logn][a],st[logn][b-(1<<logn)+1]));
    }
}