# Equilibrium Point

Tue Feb 08 2022 05:40:29 GMT+0000 (Coordinated Universal Time)

```class Solution {
// Function to find equilibrium point in the array.
public static int equilibriumPoint(long a[], int n) {

//We store the sum of all array elements.
long sum = 0;
for (int i = 0; i < n; i++)
sum += a[i];

//sum2 is used to store prefix sum.
long sum2 = 0;
int ans = -1;

for (int i = 0; i < n; i++) {

//Leaving out the value of current element from suffix sum.
sum = sum - a[i];

//Checking if suffix and prefix sums are same.
if (sum2 == sum) {
//returning the index or equilibrium point.
return (i + 1);
}

//Adding the value of current element to prefix sum.
sum2 = sum2 + a[i];
}
return -1;
}
}```
content_copyCOPY

Equilibrium Point Given an array A of n positive numbers. The task is to find the first Equilibium Point in the array. Equilibrium Point in an array is a position such that the sum of elements before it is equal to the sum of elements after it. Example 1: Input: n = 5 A[] = {1,3,5,2,2} Output: 3 Explanation: For second test case equilibrium point is at position 3 as elements before it (1+3) = elements after it (2+2). Example 2: Input: n = 1 A[] = {1} Output: 1 Explanation: Since its the only element hence its the only equilibrium point. Your Task: The task is to complete the function equilibriumPoint() which takes the array and n as input parameters and returns the point of equilibrium. Return -1 if no such point exists. Expected Time Complexity: O(n) Expected Auxiliary Space: O(1) Constraints: 1 <= n <= 10^6 1 <= A[i] <= 10^8

https://practice.geeksforgeeks.org/problems/equilibrium-point-1587115620/1/?track=DSASP-Arrays&batchId=190