fork download
  1.  
  2. #include <bits/stdc++.h>
  3. #include <iostream>
  4. #include <string>
  5. #include <vector>
  6. #include <map>
  7. #include <algorithm>
  8. #include <unordered_map>
  9. #include <cmath>
  10. #include <chrono>
  11. #include <unordered_set>
  12. #include <bitset>
  13. #include <numeric>
  14. #include <cmath>
  15. #include <set>
  16. #include <list>
  17. #include <stack>
  18. #include <queue>
  19. using namespace std;
  20. #define endl "\n"
  21. #define ll long long
  22. int inf=1e9+7;
  23. int ninf=-inf;
  24. int mod=998244353;
  25. int main(){
  26. ios_base::sync_with_stdio(0);
  27. cin.tie(0);
  28. #ifdef _DEBUG
  29. FILE *fp;
  30. freopen("input.txt", "r", stdin);
  31. freopen("output.txt", "w", stdout);
  32. #endif
  33. int tc;
  34. cin>>tc;
  35. while(tc--){
  36. int n;
  37. cin>>n;
  38. vector<int> nums(n);
  39. for(int i=0;i<n;++i){
  40. cin>>nums[i];
  41. }
  42. for(int i=0;i<n;++i){
  43. if(nums[i]%2!=0){
  44. nums[i]=0;
  45. }
  46. else if(nums[i]%4==0){
  47. nums[i]=2;
  48. }
  49. else{
  50. nums[i]=1;
  51. }
  52. }
  53. for(int i=1;i<n;++i){
  54. nums[i]=nums[i]+nums[i-1];
  55. }
  56. unordered_map<int,int> store;
  57. ll count=0;
  58. store[0]++;
  59. ll total = (n * 1ll * (n + 1)) / 2;
  60. for(int i=0;i<n;++i){
  61. store[nums[i]]++;
  62. count+=store[nums[i]-1];
  63. }
  64. cout<<total-count<<endl;
  65. }
  66. cout<<endl;
  67. }
Time limit exceeded #stdin #stdout 5s 2701048KB
stdin
Standard input is empty
stdout
Standard output is empty