1875 2022. 12. 06 20:59:26 kovacs.peter.18f Síkság (55) cpp11 Elfogadva 55/55 16ms 4724 KiB
#include <iostream>
#include <vector>
#include <map>

using namespace std;

int main() {
    cin.sync_with_stdio(false);
    cin.tie(nullptr);

    int N;
    cin >> N;
    vector<int> heightS(N);
    map<int, int> countS;
    int different = 0, max_begin = 0, max_end = 0;
    for (int l = 0, r = 0; r < N; r++) { // zárt intervallum
        cin >> heightS[r];
        if (++countS[heightS[r]] == 1) {
            ++different;
        }
        while (different == 3) {
            if (--countS[heightS[l]] == 0) {
                --different;
                countS.erase(heightS[l]);
            }
            ++l;
        }
        if (abs(countS.begin()->first - (++countS.begin())->first) != 1) {
            while (different == 2) {
                if (--countS[heightS[l]] == 0) {
                    --different;
                    countS.erase(heightS[l]);
                }
                ++l;
            }
        }
        if (r - l > max_end - max_begin) {
            max_begin = l;
            max_end = r;
        }
    }
    cout << max_end - max_begin + 1 << " " << max_begin + 1 << '\n';
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 55/55
1 Elfogadva 0/0 3ms 1824 KiB
2 Elfogadva 0/0 3ms 2192 KiB
3 Elfogadva 2/2 2ms 2100 KiB
4 Elfogadva 2/2 2ms 2316 KiB
5 Elfogadva 2/2 2ms 2424 KiB
6 Elfogadva 2/2 2ms 2628 KiB
7 Elfogadva 3/3 2ms 2704 KiB
8 Elfogadva 2/2 2ms 2712 KiB
9 Elfogadva 3/3 2ms 2716 KiB
10 Elfogadva 3/3 3ms 3012 KiB
11 Elfogadva 3/3 3ms 2960 KiB
12 Elfogadva 3/3 3ms 3084 KiB
13 Elfogadva 3/3 16ms 4040 KiB
14 Elfogadva 3/3 10ms 4116 KiB
15 Elfogadva 3/3 13ms 4236 KiB
16 Elfogadva 3/3 14ms 4312 KiB
17 Elfogadva 3/3 14ms 4312 KiB
18 Elfogadva 3/3 16ms 4512 KiB
19 Elfogadva 3/3 14ms 4724 KiB
20 Elfogadva 3/3 14ms 4720 KiB
21 Elfogadva 3/3 8ms 4456 KiB
22 Elfogadva 3/3 10ms 4528 KiB