fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. typedef long long ll;
  4. const int Mod=998244353;
  5. const ll INF = -10000000000000;
  6.  
  7. void solve() {
  8. int n;
  9. cin >> n;
  10. vector<int> a(n),even,odd;
  11. for(int i=0;i<n;i++){
  12. cin >> a[i];
  13. if(a[i]%2==0) even.push_back(a[i]);
  14. else odd.push_back(a[i]);}
  15. int cnt=0,it=0;
  16. for(int i=0;i<n;i++){
  17. if(i%2==0 && cnt<even.size()) a[i]=even[cnt++];
  18. else if(i%2==0) a[i]=odd[it++];
  19. else if(i%2==1 && it<odd.size()) a[i]=odd[it++];
  20. else if(i%2==1) a[i]=even[cnt++];
  21. }
  22. ll sum = 0;
  23. int ans = 0;
  24. for(int i=0;i<n;i++){
  25. sum+=a[i];
  26. if(sum%2==0){
  27. ans++;
  28. while(sum%2==0) sum/=2;
  29. }
  30. }
  31. cout << ans << '\n';
  32. }
  33.  
  34. int main(){
  35. ios::sync_with_stdio(false);
  36. cin.tie(nullptr);
  37.  
  38. int t;
  39. cin >> t;
  40. while (t--) solve();
  41.  
  42.  
  43. return 0;
  44. }
  45.  
Success #stdin #stdout 0s 5324KB
stdin
5
1
1
2
1 2
3
2 4 6
4
1000000000 999999999 999999998 999999997
10
3 1 4 1 5 9 2 6 5 3
stdout
0
2
1
3
8