fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int countOfSubarray(vector<int>& a , int x , int y){
  5. int n = a.size();
  6. unordered_map<int,int>freq;
  7. int ans = 0;
  8. freq[0] = 1;
  9. int diff = 0;
  10. int cx = 0 , cy = 0;
  11. for(int i=0;i<n;i++){
  12. if(a[i]==x)cx++;
  13. else cy++;
  14. diff = cx-cy;
  15. ans += freq[diff];
  16. freq[diff]++;
  17. }
  18. return ans;
  19. }
  20.  
  21. int main() {
  22. int n;
  23. cin>>n;
  24. int x,y;
  25. cin>>x>>y;
  26. vector<int>a(n);
  27. for(int i=0;i<n;i++){
  28. cin>>a[i];
  29. }
  30. cout<<countOfSubarray(a,x,y);
  31. return 0;
  32. }
Success #stdin #stdout 0s 5288KB
stdin
7
2 3
2 3 3 2 2 3 2
stdout
9