1 solutions

  • 1
    @ 2024-10-30 20:11:05

    没有数据QWQ

    代码(lfy18赞助):

    #include <bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    const int N=1e7;
    int a[N],b[N],lef[N],rig[N],c[N];
    int n,mid;
    int ma=-1;
    ll ans;
    int main(){
    	
    	cin.sync_with_stdio(false);
    	ios::sync_with_stdio(0);
        cin>>n;
        for(int i=0;i<n;i++){
            cin>>a[i];
            if(a[i]>ma){
                ma=a[i];
                mid=i;
            }
        }
        mid--;
        for(int j=1;j<=n;j++)
            b[j]=a[(mid+j)%n];   
        lef[1]=1;
        for(int i=2;i<=n;i++){
            lef[i]=i-1;
            while(lef[i]>1&&b[lef[i]]<=b[i])
                lef[i]=lef[lef[i]];
        }
        for(int i=n;i>=1;i--){
            rig[i]=i+1;
            while(rig[i]<=n&&b[rig[i]]<b[i])
                rig[i]=rig[rig[i]];
            if(rig[i]<=n&&b[rig[i]]==b[i]){
                c[i]=c[rig[i]]+1;
                rig[i]=rig[rig[i]];
            }
        }
        for(int i=2;i<=n;i++){
            ans+=c[i]+2;
            if(lef[i]==1&&rig[i]==n+1)
                ans--;
        }
        cout<<ans;
        
        return 0;
    }
    
    • 1

    Information

    ID
    273
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    10
    Tags
    # Submissions
    9
    Accepted
    0
    Uploaded By