Submission

Status:

[P][P][P][P][P][PPPPP]

Subtask/Task Score:

{17/17}{17/17}{17/17}{17/17}{17/17}{17/17}

Score: 100

User: wleo.lwo

Problemset: ละลานตา

Language: cpp

Time: 0.020 second

Submitted On: 2026-10-07 18:00:58

#include <iostream>
#include <vector>
using namespace std;

int main() {
    int n, k;
    cin >> n >> k;

    vector<int> a(n);

    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }

    vector<int> keep(100001, 0);

    int left = 0;
    int dif = 0;
    long long ans = 0;

    for (int right = 0; right < n; right++) {

        if (keep[a[right]] == 0) {
            dif++;
        }

        keep[a[right]]++;

        while (dif >= k) {

            keep[a[left]]--;

            if (keep[a[left]] == 0) {
                dif--;
            }

            left++;
        }

        ans += left;
    }

    cout << ans << '\n';

    return 0;
}