Examine if each Subarray of even size has sum 0


View Dialogue

Enhance Article

Save Article

Like Article

View Dialogue

Enhance Article

Save Article

Like Article

Given an array A[ ] of dimension N, the duty is to test if the sum of each even-sized subarray is 0 or not.


Enter: N = 4, A[] = {8, -8, 7, 9}
Output: NO
Clarification: Sum of subarray {7, 9} will not be 0.

Enter: N = 2, A[] = {0, 0}
Output: YES
Clarification: The one attainable even size subarray is {0, 0} and its sum is 0.

Naive Method: The essential strategy to clear up the issue is as follows:

Generate all attainable even size subarrays and test if sum is 0 or not and return “YES” or “NO” accordingly.

Time Complexity: O(N2)
Auxiliary House: O(1)

Environment friendly Method: To resolve the issue observe the beneath thought:

The thought is to test the entire array as soon as for all attainable subarrays of size 2 as a result of all different evn sized subarrays of size higher than 2 may be made by combining subarrays of size 2. So if all subarrays of size 2 have sum 0, all different even sized subarrays can even have sum 0.

Observe the steps talked about beneath to implement the thought:

  • Begin iterating from i = 1 to N-1:
    • Examine if the sum of A[i] and A[i-1] is 0 or not.
    • If it’s not 0, return the reply as “NO” and no have to calculate additional.
  • If the iteration is over and the situation is happy for all of the subarrays, return “YES” because the required reply.

Under is the implementation of the above method.



#embody <bits/stdc++.h>

utilizing namespace std;


string clear up(int N, int A[])


    int ans = 1;




    for (int i = 1; i < N; i++) {

        if (A[i] + A[i - 1] != 0) {

            ans = 0;




    if (ans)

        return "YES";

    return "NO";



int major()


    int A[] = { 8, -8, 7, 9 };

    int N = sizeof(A) / sizeof(A[0]);



    cout << clear up(N, A);

    return 0;


Time Complexity: O(N)
Auxiliary House: O(1)


Leave a Reply

Your email address will not be published. Required fields are marked *