1876 2022. 12. 06 21:02:09 kovacs.peter.18f Síkság (55) cpp11 Elfogadva 55/55 16ms 4656 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.rbegin()->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 2236 KiB
3 Elfogadva 2/2 2ms 2264 KiB
4 Elfogadva 2/2 2ms 2432 KiB
5 Elfogadva 2/2 2ms 2632 KiB
6 Elfogadva 2/2 2ms 2704 KiB
7 Elfogadva 3/3 2ms 2940 KiB
8 Elfogadva 2/2 2ms 3048 KiB
9 Elfogadva 3/3 2ms 3252 KiB
10 Elfogadva 3/3 3ms 3360 KiB
11 Elfogadva 3/3 3ms 3364 KiB
12 Elfogadva 3/3 3ms 3364 KiB
13 Elfogadva 3/3 14ms 4008 KiB
14 Elfogadva 3/3 10ms 4136 KiB
15 Elfogadva 3/3 13ms 4340 KiB
16 Elfogadva 3/3 14ms 4460 KiB
17 Elfogadva 3/3 14ms 4536 KiB
18 Elfogadva 3/3 16ms 4616 KiB
19 Elfogadva 3/3 14ms 4544 KiB
20 Elfogadva 3/3 14ms 4500 KiB
21 Elfogadva 3/3 8ms 4320 KiB
22 Elfogadva 3/3 10ms 4656 KiB