We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
using namespace std;
int arraySplittingHelper(const vector& arr, int start, int end, const vector& prefixSum) {
if (start >= end) return 0;
long long total_sum = prefixSum[end + 1] - prefixSum[start];
if (total_sum % 2 != 0) return 0;
long long target_sum = total_sum / 2;
for (int i = start; i < end; ++i) {
long long left_sum = prefixSum[i + 1] - prefixSum[start];
if (left_sum == target_sum) {
// Recursively calculate splits for left and right partitions
return 1 + max(
arraySplittingHelper(arr, start, i, prefixSum),
arraySplittingHelper(arr, i + 1, end, prefixSum)
);
}
}
return 0;
}
int arraySplitting(const vector& arr) {
int n = arr.size();
// Create prefix sum array
vector prefixSum(n + 1, 0);
for (int i = 0; i < n; ++i) {
prefixSum[i + 1] = prefixSum[i] + arr[i];
}
return arraySplittingHelper(arr, 0, n - 1, prefixSum);
}
int main() {
int t;
cin >> t;
vector results;
while (t--) {
int n;
cin >> n;
vector<int> arr(n);
for (int i = 0; i < n; ++i) {
cin >> arr[i];
}
results.push_back(arraySplitting(arr));
}
for (int result : results) {
cout << result << endl;
}
return 0;
}
Cookie support is required to access HackerRank
Seems like cookies are disabled on this browser, please enable them to open this website
Nikita and the Game
You are viewing a single comment's thread. Return to all comments →
include
include
include
include
using namespace std; int arraySplittingHelper(const vector& arr, int start, int end, const vector& prefixSum) { if (start >= end) return 0;
}
int arraySplitting(const vector& arr) { int n = arr.size(); // Create prefix sum array vector prefixSum(n + 1, 0); for (int i = 0; i < n; ++i) { prefixSum[i + 1] = prefixSum[i] + arr[i]; } return arraySplittingHelper(arr, 0, n - 1, prefixSum); } int main() { int t; cin >> t; vector results;
}