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