158802025-03-07 12:35:22UVincePicnic's Tablecpp17Elfogadva 100/1002.167s235316 KiB
#include <bits/stdc++.h>
using namespace std;
using ll=long long;

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    ll n;
    cin>>n;
    vector<ll> h(n+2);
    vector<ll> l(n+1),r(n+1);
    h[0]=LLONG_MAX;
    h[n+1]=LLONG_MAX;
    for (ll i=1;i<=n;i++) cin>>h[i];
    stack<ll> mx;
    mx.push(0);
    for (ll i=1;i<=n;i++){
        while (!mx.empty() && h[mx.top()]<=h[i]) mx.pop();
        l[i]=mx.top();
        mx.push(i);
    }
    stack<ll> mx2;
    mx2.push(n+1);
    for (ll i=n;i>=1;i--){
        while (!mx2.empty() && h[mx2.top()]<=h[i]) mx2.pop();
        r[i]=mx2.top();
        mx2.push(i);
    }

    ll ans=0;
    stack<ll> st;
    st.push(0);
    for (ll i=1;i<=n;i++){
        ll last=-1;
        while (!st.empty() && h[st.top()]<=h[i]) {last=st.top();st.pop();}
        st.push(i);
        if (last==-1 || h[last]!=h[i]) continue;
        st.pop();
        st.push(last);
        ll left=l[last]+1;
        ll right=r[i]-1;

        ll cur=i-last+1;
        if (last-left<right-i){
            cur+=2*(last-left);
            right-=last-left;
            ll mid = (last+i)/2;
            ll push = (i-mid)*2-1;
            if (mid*2!=last+i) push--;
            cur+=min(right-i, push);
        }
        else {
            cur+=2*(right-i);
            left+=right-i;
            ll mid = (last+i)/2;
            ll push = (mid-last)*2-1;
            if (mid*2!=last+i) push++;
            cur+=min(last-left, push);
        }
        ans=max(ans, cur);
    }
    cout<<ans;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms508 KiB
2Elfogadva1ms316 KiB
subtask210/10
3Elfogadva1ms316 KiB
4Elfogadva1ms316 KiB
5Elfogadva109ms23672 KiB
6Elfogadva119ms23916 KiB
7Elfogadva112ms23864 KiB
subtask315/15
8Elfogadva1ms316 KiB
9Elfogadva1ms316 KiB
10Elfogadva1ms500 KiB
11Elfogadva1ms316 KiB
12Elfogadva1ms316 KiB
13Elfogadva1ms316 KiB
14Elfogadva1ms316 KiB
subtask415/15
15Elfogadva2ms316 KiB
16Elfogadva1ms316 KiB
17Elfogadva1ms316 KiB
18Elfogadva2ms320 KiB
19Elfogadva2ms316 KiB
20Elfogadva1ms316 KiB
21Elfogadva2ms316 KiB
subtask525/25
22Elfogadva21ms2612 KiB
23Elfogadva21ms2612 KiB
24Elfogadva21ms2612 KiB
25Elfogadva1ms316 KiB
26Elfogadva20ms2612 KiB
27Elfogadva1ms512 KiB
28Elfogadva1ms316 KiB
29Elfogadva19ms2612 KiB
30Elfogadva14ms2788 KiB
subtask635/35
31Elfogadva1.86s235160 KiB
32Elfogadva2.099s235060 KiB
33Elfogadva2.048s235252 KiB
34Elfogadva2.167s235316 KiB
35Elfogadva1ms316 KiB
36Elfogadva1.664s235064 KiB
37Elfogadva1.616s235176 KiB
38Elfogadva1ms316 KiB
39Elfogadva1ms316 KiB
40Elfogadva1.485s235060 KiB