In this Leetcode Make the array even problem solution you are given an array A of N integers. If you make the array whole using the following operation, then what is the minimum number of operations required to make the entire array even?


HackerEarth Make the array even problem solution


HackerEarth Make the array even problem solution.

#include<bits/stdc++.h>
using namespace std;
#define FIO ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0)
#define mod 1000000007
#define endl "\n"
#define test ll txtc; cin>>txtc; while(txtc--)
typedef long long int ll;
int main() {
    FIO;
    test
    {
      ll n; cin>>n;
      vector<ll>a(n);
      for(auto &it:a) cin>>it;
      ll ans=0,ok=0;
      for(int i=0;i<n;i++){
          if(a[i]&1){
              ok++;
          }
          else{
              ans+=(ok/2)+2*(ok&1);
              ok=0;
          }
      }
      ans+=(ok/2)+2*(ok&1);
      cout<<ans<<endl;
    }
    return 0;
}

Second solution

#include <bits/stdc++.h>

using namespace std;
typedef long long ll;
const int maxn = 2e5 + 14;

int main() {
    ios::sync_with_stdio(0), cin.tie(0);
    int t;
    cin >> t;
    while(t--){
        int n;
        cin >> n;
        int ans = 0;
        int len = 0;
        while(n--){
            int x;
            cin >> x;
            if(x % 2)
                len++;
            else{
                ans += len + (len % 2) * 3;
                len = 0;
            }
        }
        ans += len + (len % 2) * 3;
        cout << ans / 2 << '\n';
    }
}