Find minimum subarray sum for each index i in subarray [i, N-1]

Find minimum subarray sum for each index i in subarray [i, N-1]Given an array arr[] of size N, the task is to find the minimum subarray sum in the subarrays [i, N-1] for all i in [0, N-1].Examples:Input: arr[ ] = {3, -1, -2}Output: 3 -3 -2Explanation: For (i = 1) i.e. {3, -1, -2}, the minimum subarray sum is -3 for {-1, -2}.For (i = 2) i.e. {-1, -2}, the minimum subarray sum is -3 for {-1, -2}.For (i = 3) i.e. {-2}, the minimum subarray sum is -2 for {-2}.Input: arr[ ] = {5, -3, -2, 9, 4}Output: -5 -5 -2 4 4Approach: The problem can be solved by using the standard Kadane’s algorithm for maximum subarray sum. Follow the steps below to solve this problem:Below is the implementation of the above approach:C++#include using namespace std;  int kadane(int arr[], int start, int end){    int currMax = arr[start];    int maxSoFar = arr[start];          for (int i = start + 1; i < end + 1; i++) {          currMax = max(arr[i], arr[i] + currMax);        maxSoFar = max(maxSoFar, currMax);    }          return maxSoFar;}  void minSubarraySum(int arr[], int n){              for (int i = 0; i < n; i++) {        arr[i] = -arr[i];    }              for (int i = 0; i < n; i++) {                  int result = kadane(arr, i, n - 1);                  result = -result;                  cout