fork download
  1. #include <bits/stdc++.h>
  2. typedef long long ll;
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7. int t;
  8. cin >> t;
  9. ll n;
  10. while(t--){
  11. cin >> n;
  12. vector<int> v(n);
  13. for(ll i=0;i<n;i++){
  14. cin >> v[i];
  15. if(v[i] == 0)
  16. v[i] =-1;
  17. }
  18. vector<int> psa(n);
  19. psa[0] = v[0];
  20. for(ll i=1;i<n;i++){
  21. psa[i] = psa[i-1]+v[i];
  22. }
  23. map<int,int> mp;
  24. int c=0;
  25. for(ll i=0;i<n;i++){
  26. int d=mp.count(psa[i]);
  27. if(mp.count(psa[i])==0){
  28. mp.insert({psa[i],i});
  29. if(psa[i] == 0)
  30. c+=1;
  31. }
  32.  
  33. else{
  34. if(psa[i]==0){
  35. c += mp.count(psa[i])+1;
  36. }
  37. else{
  38. c += mp.count(psa[i]);
  39. }
  40. }
  41. }
  42. cout << c << "\n";
  43. }
  44.  
  45. return 0;
  46. }
Success #stdin #stdout 0.01s 5344KB
stdin
3
4
1 0 1 0 
10
1 0 1 0 0 1 0 0 1 1 
4
1 1 1 1 
stdout
4
10
0