227192026-01-15 17:10:21szabelrSíkság (55)cpp17Accepted 55/5514ms1004 KiB
#include <iostream>
#include <vector>
#include <deque>
using namespace std;
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n; cin >> n;
    vector<int>nums(n);
    for (int i = 0; i < n; i++)
    {
        int x; cin >> x;
        nums[i] = x;
    }
    int l = 0, r = 0;
    int best_dist = 0;
    int start=0;
    deque<int> maxq, minq;
    while (r < nums.size())
    {
        while (!maxq.empty() and nums[maxq.back()] < nums[r])
            maxq.pop_back();
        while (!minq.empty() and nums[minq.back()] > nums[r])
            minq.pop_back();
        maxq.push_back(r);
        minq.push_back(r);
        while (nums[maxq.front()] - nums[minq.front()] > 1)
        {
            if (maxq.front() == l) maxq.pop_front();
            if (minq.front() == l) minq.pop_front();
            l++;
        }
        if (r - l + 1 > best_dist)
        {
            best_dist = r - l + 1;
            start = l + 1;
        }
        r++;
    }
    cout << best_dist << " " << start;
}
SubtaskSumTestVerdictTimeMemory
base55/55
1Accepted0/01ms500 KiB
2Accepted0/02ms316 KiB
3Accepted2/21ms316 KiB
4Accepted2/21ms316 KiB
5Accepted2/21ms388 KiB
6Accepted2/21ms316 KiB
7Accepted3/31ms316 KiB
8Accepted2/21ms316 KiB
9Accepted3/31ms432 KiB
10Accepted3/32ms316 KiB
11Accepted3/32ms468 KiB
12Accepted3/32ms460 KiB
13Accepted3/314ms820 KiB
14Accepted3/39ms820 KiB
15Accepted3/312ms832 KiB
16Accepted3/313ms856 KiB
17Accepted3/314ms820 KiB
18Accepted3/314ms836 KiB
19Accepted3/314ms824 KiB
20Accepted3/314ms1004 KiB
21Accepted3/38ms564 KiB
22Accepted3/312ms928 KiB