1 条题解

  • 1
    @ 2021-8-8 1:33:46

    C++ :

    #include<cstdio>
    #include<algorithm>
    #include<queue>
    #define N 2000010
    using namespace std;
    int n,a[N],maxs;
    deque<int> q;
    int main()
    {
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
        {
          scanf("%d",&a[i]);
          a[i+n]=a[i];
        }
        for(int i=1;i<=2*n;i++)
        {
            while(!q.empty()&&i-q.front()>n/2) 
              q.pop_front();
            if(i>=n)
               maxs=max(maxs,a[i]+i+a[q.front()]-q.front());
              
            while(!q.empty()&&a[q.back()]-q.back()<a[i]-i) 
              q.pop_back();
            q.push_back(i);
        }
        printf("%d",maxs);
    }
    
    • 1

    信息

    ID
    200
    时间
    1000ms
    内存
    128MiB
    难度
    8
    标签
    递交数
    15
    已通过
    7
    上传者