Pagini recente » Cod sursa (job #1740215) | Cod sursa (job #342163) | Cod sursa (job #3235184) | Cod sursa (job #1670492) | Cod sursa (job #2891088)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("secv5.in");
ofstream fout ("secv5.out");
const int N_MAX = (1 << 20) + 5;
int a[N_MAX] , n , k , w , ans , l , r , cnt;
unordered_map<int , int>mp;
int main(){
ios_base::sync_with_stdio(false);
fin.tie(NULL);
fin >> n >> k >> w;
for (int i=1; i<=n; i++){
fin >> a[i];
}
l = 1 , r = 1;
while (r <= n){
if (mp[a[r]] == 0){
cnt += 1;
}
mp[a[r]] += 1;
if (cnt >= k){
while (cnt >= w){
if (mp[a[l]] == 1){
cnt -= 1;
}
mp[a[l]] -= 1;
l += 1;
}
if (cnt >= k){
ans += r - l + 1;
}
}
r += 1;
}
fout << ans;
}