185292025-10-26 10:14:48PKBVölgy (100 pont)cpp17Accepted 100/100194ms10980 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
    int n; 
    cin >> n;
    vector<int> t(n);
    for (int i = 0; i < n; i++) cin >> t[i];



    vector<pair<int,int>> vp;
    vp.reserve(n);
    for (int i = 0; i < n; ++i) vp.emplace_back(t[i], i);

    sort(vp.begin(), vp.end(),
        [](const pair<int,int>& a, const pair<int,int>& b) {
            if (a.first == b.first)
                return a.second < b.second;
            return a.first > b.first;
        }
    );

    set<int> active;
    multiset<int> gaps;

    int ans = -1;
    int i = 0;
    while (i < n) {
        int j = i;
        int val = vp[i].first;
        while (j < n && vp[j].first == val) ++j;

        for (int k = i; k < j; ++k) {
            int idx = vp[k].second;
            auto it_succ = active.lower_bound(idx);
            int succ = -1, pred = -1;
            if (it_succ != active.end()) succ = *it_succ;
            if (it_succ != active.begin()) {
                auto it_pred = it_succ;
                if (it_pred == active.end() || *it_pred >= idx) --it_pred;
                pred = *it_pred;
            }

            if (pred != -1 && succ != -1) {
                auto itf = gaps.find(succ - pred);
                if (itf != gaps.end()) gaps.erase(itf);
            }
            if (pred != -1) gaps.insert(idx - pred);
            if (succ != -1) gaps.insert(succ - idx);

            active.insert(idx);
        }

        if (!gaps.empty()) {
            int maxgap = *prev(gaps.end());
            if (maxgap >= 2) ans = max(ans, maxgap);
        }

        i = j;
    }

    cout << ans << '\n';
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base100/100
1Accepted0/01ms500 KiB
2Accepted0/02ms316 KiB
3Accepted5/51ms316 KiB
4Accepted5/51ms316 KiB
5Accepted5/51ms316 KiB
6Accepted5/51ms316 KiB
7Accepted5/51ms316 KiB
8Accepted5/51ms316 KiB
9Accepted5/51ms316 KiB
10Accepted5/52ms316 KiB
11Accepted5/57ms928 KiB
12Accepted5/512ms1284 KiB
13Accepted5/514ms1332 KiB
14Accepted5/514ms1276 KiB
15Accepted5/5175ms10788 KiB
16Accepted5/5194ms10820 KiB
17Accepted5/5126ms10980 KiB
18Accepted5/5168ms10864 KiB
19Accepted5/5166ms10804 KiB
20Accepted5/5143ms10932 KiB
21Accepted5/5144ms10792 KiB
22Accepted5/5141ms10780 KiB