fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int ans(vector<int>&v,int k){
  4. unordered_map<int,int>m;int c=0;
  5. int i=0;int j=0;
  6. while(j<v.size()){
  7. m[v[j]]++;
  8. while(m.size()>k){
  9. m[v[i]]--;
  10. if(m[v[i]]==0)m.erase(v[i]);
  11. i++;
  12. }
  13. c+=j-i+1;
  14. j++;
  15.  
  16. }
  17. return c;
  18. }
  19.  
  20. int main(){
  21. int n;cin>>n;
  22. vector<int>v(n);
  23. for(int i=0;i<n;i++)cin>>v[i];
  24.  
  25. int k;cin>>k;
  26. cout<<ans(v,k)<<endl;
  27. return 0;
  28. }
Success #stdin #stdout 0s 5312KB
stdin
5
1 2 3 4 5
4
stdout
14