Q3

 avatar
unknown
plain_text
9 months ago
798 B
16
Indexable
#include <bits/stdc++.h>
using namespace std;
#define int long long

signed main() {
    iostream::sync_with_stdio(0);
    cin.tie(0);
    //init();

    int N, M, K;
    cin >> N >> M >> K;

    vector<int> chain(N);
    for (int i = 0; i < N; ++i) {
        cin >> chain[i];
    }

    unordered_map<int, int> freqs;
    int l = 0, cnt = 0;
    int maxLen = 0, count = 0;

    for (int r = 0; r < N; ++r) {
        if (++freqs[chain[r]] == 1) ++cnt;

        while (cnt > K || (r - l + 1) > M) {
            if (--freqs[chain[l]] == 0) --cnt;
            ++l;
        }

        int len = r - l + 1;
        if (len > maxLen) {
            maxLen = len;
            count = 1;
        } else if (len == maxLen) {
            ++count;
        }
    }

    cout << maxLen << " " << count << '\n';
}
Editor is loading...
Leave a Comment