fork download
  1. #include <iostream>
  2. #include<bits/stdc++.h>
  3. using namespace std;
  4.  
  5. int main() {
  6. // your code goes here
  7. int n; cin>>n;
  8. vector<int>arr(n+1);
  9. for(int i =1; i<=n;i++)cin>>arr[i];
  10. int k ; cin>>k;
  11. for(int i = 1 ; i<=n;i++){
  12. if(arr[i]>k) arr[i]=1;
  13. else if(arr[i]==k) arr[i]=0;
  14. else{
  15. arr[i]=-1;
  16. }
  17. }
  18. unordered_map<int,int>even_count;
  19. unordered_map<int,int>odd_count;
  20. vector<int>prefix_sum(n+1);
  21. prefix_sum[0]=0;
  22. even_count[0]=1;
  23. int count = 0;
  24. for(int i = 1 ; i<=n;i++){
  25. prefix_sum[i]=prefix_sum[i-1]+arr[i];
  26. if(i%2==0){
  27. count +=odd_count[prefix_sum[i]];
  28. even_count[prefix_sum[i]]++;
  29. }
  30. else {
  31. count +=even_count[prefix_sum[i]];
  32. odd_count[prefix_sum[i]]++;
  33. }
  34. }
  35. cout<<count;
  36. return 0;
  37. }
Success #stdin #stdout 0.01s 5272KB
stdin
6 
5 3 1 4 7 7 
4
stdout
4