Untitled
unknown
c_cpp
2 years ago
963 B
15
Indexable
#include<bits/stdc++.h>
// AMAN JAIN MCA 1st YEAR 2nd SEM
void recursion(vector<int>& a, vector<int> currentSubarray, int index, long long currentSum, long long k, vector<vector<int>>& ans) {
if(currentSum == k && currentSubarray.size()) {
ans.push_back(currentSubarray);
}
if(index < a.size()) {
currentSubarray.push_back(a[index]);
recursion(a, currentSubarray, index + 1, currentSum + a[index], k, ans);
currentSubarray.pop_back();
if(currentSubarray.size() == index && currentSubarray.size() != 0) {
currentSubarray = vector<int>();
currentSubarray.push_back(a[index]);
recursion(a, currentSubarray, index + 1, a[index], k, ans);
}
}
}
vector<vector<int>> subarraysWithSumK(vector<int> a, long long k) {
vector<vector<int>> ans;
recursion(a, vector<int>(), 0, 0, k, ans);
sort(ans.begin(), ans.end());
return ans;
}
Editor is loading...