Untitled

mail@pastecode.io avatarunknown
c_cpp
a month ago
963 B
8
Indexable
Never
#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;
}