# Fair Array Removal Indices

## Problem statement

Consider this problem as selecting specific indices in the array such that removing the element at those indices transforms the array into a fair array. Find the count of such indices to achieve a fair distribution of even and odd-indexed sums.

For instance, if nums = [2,1,6,4], you need to identify the number of indices you can remove to make the array fair. The output would be 1, as removing index 1 results in a fair array.

## Java Implementation

### Approach 1

Output:

```Enter the size of the array: 4
Enter the elements of the array:
2 1 6 4
Number of ways to make the array fair: 1
```

Code Explanation:

The code determines the number of ways to make an array fair by iteratively removing elements and checking if the array becomes fair. It uses two pairs of variables (evenL, oddL) and (evenR, oddR) to maintain the running sums of even and odd-indexed elements on the left and right sides of the current index, respectively.

The first loop initializes the right-side sums (evenR and oddR).

The second loop iterates through each index, updating the sums and checking if removing the current index makes the array fair.

The result is incremented whenever a fair array is found.

Time Complexity:

The time complexity is O(N), where N is the length of the input array. The code iterates through the array twice, each time performing constant-time operations.

Space Complexity:

The space complexity is O(1). The algorithm uses a constant amount of extra space, regardless of the input size. The space used for variables (evenL, oddL, evenR, oddR, result, i, n) remains constant.

### Approach 2 Using Prefix sums

Java Code

Output:

```Enter the size of the array: 4
Enter the elements of the array:
2 1 6 4
Number of ways to make the array fair: 1
```

Code Explanation

Implements an alternative approach to calculate the number of ways to make the array fair by utilizing prefix sums for even and odd indices.. Two arrays (prefixEven and prefixOdd) are created to store prefix sums for even and odd indices separately.The program calculates the prefix sums by iterating through the array.

A loop iterates through each index, calculating the sum of even and odd-indexed elements on the left and right. If these two sums are equal, the result is incremented.The program outputs the number of ways to make the array fair based on the alternative approach.

Time Complexity

The time complexity is O(N), where N is the length of the input array. Calculating the prefix sums and iterating through the array are both linear operations.

Space Complexity:

The space complexity is O(N), as additional space is used for the prefix sum arrays (prefixEven and prefixOdd). The space required scales linearly with the input size.