#include <iostream>
#include <vector>
bool hasZeroSumSubarray(std::vector<int> &arr) {
int size = arr.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) {
std::cout << "index from: " << startIndex << " to: " << endIndex << std::endl;
return true;
}
}
}
return false;
}
int main()
{
std::vector<int> arr = {8, 32, 4, -5, 1, 9};
bool hasZeroSum = hasZeroSumSubarray(arr);
if (hasZeroSum) {
std::cout << "The array contains a contiguous subarray with zero-sum" << std::endl;
}
else {
std::cout << "The array does not contain a contiguous subarray with zero-sum" << std::endl;
}
}
/*
run:
index from: 2 to: 4
The array contains a contiguous subarray with zero-sum
*/