In this

**HackerEarth Erasing an Array problem solution**you are given a binary array A of N elements. The array consists of 0's and 1's. You can perform the following operations as many times as possible:- Select a subarray starting from the first index that is inversion-free and delete it.
- Determine the minimum number of operations to delete the entire array.

Inversion free: There are no two indices i and j in array A such that (i < j) and (Ai > Aj).

Subarray: A subarray is an array obtained after deleting some elements from the beginning (prefix) possibly 0 and deleting some elements from the end (suffix) possibly 0.

## HackerEarth Erasing an array 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 t; cin>>t; while(t--)

typedef long long int ll;

int main() {

FIO;

test

{

ll n; cin>>n;

vector<ll>a(n);

for(auto &it:a) cin>>it;

int ans=0,ind=0;

while(ind<n){

ans++;

while(ind<n && a[ind]==0){

ind++;

}

while(ind<n && a[ind]==1){

ind++;

}

}

cout<<ans<<endl;

}

return 0;

}

### second solution

`t = int(input())`

while t > 0:

t -= 1

n = int(input())

a = list(map(int, input().split()))

ans = 1

for i in range(n - 1):

ans += a[i] - a[i + 1] == 1

print(ans)

## 0 Comments