Submission

Status:
[P][P][P][P][P][PPPPP]

Score: 100

User: Jokul

Problemset: ละลานตา

Language: c

Time: 0.008 second

Submitted On: 2025-04-09 18:56:48

#include <stdio.h>

#define MAX_COLOR 100000

int main() {
    int N, K;
    scanf("%d %d",&N,&K);
    int colors[N];
    for (int i = 0; i < N; i++) {
        scanf("%d", &colors[i]);
    }

    int left = 0, right = 0;
    long long count= 0;
    int color_count[MAX_COLOR + 1] = {0};
    int unique_colors = 0;

    while (right < N) {
        if (color_count[colors[right]] == 0) {
            unique_colors++;
        }
        color_count[colors[right]]++;
        right++;
        while (unique_colors >= K) {

            count += (N - right + 1);

            color_count[colors[left]]--;
            if (color_count[colors[left]] == 0) {
                unique_colors--;
            }
            left++;
        }
    }

    printf("%lld\n", count);
    return 0;
}