#include <stdio.h>
#include <string.h>
#include <stdbool.h>
bool hasZeroSumSubarray(int arr[], int size) {
for (int i = 0; i < size; i++) {
int sum = arr[i];
int startIndex = i;
if (sum == 0) {
return true;
}
for (int j = i + 1; j < size; j++) {
sum += arr[j];
int endIndex = j;
if (sum == 0) {
printf("index from: %d to: %d\n", startIndex, endIndex);
return true;
}
}
}
return false;
}
int main()
{
int arr[] = {8, 32, 4, -5, 1, 9};
int size = sizeof(arr) / sizeof(arr[0]);
bool hasZeroSum = hasZeroSumSubarray(arr, size);
if (hasZeroSum) {
puts("The array contains a contiguous subarray with zero-sum");
}
else {
puts("The array does not contain a contiguous subarray with zero-sum");
}
}
/*
run:
index from: 2 to: 4
The array contains a contiguous subarray with zero-sum
*/