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;
}