Untitled
unknown
plain_text
a year ago
1.2 kB
8
Indexable
//User function template for C++ bool solve(vector<int>&arr,int sum,vector<int>&dp,int n){ if(dp[sum]==1){ return true; } if(dp[sum]=-1){ return false; } if(sum==0){ dp[sum]=1; return true; } else if(n==0){ return false; } else if(sum<0){ dp[sum]=-1; return false; } bool take= solve(arr,sum-arr[n],dp,n-1); bool not_take=solve(arr,sum,dp,n-1); if(take==true||not_take==true){ dp[sum]=1; return true; } dp[sum]=-1; return false; } class Solution{ public: bool isSubsetSum(vector<int>arr, int sum){ vector<int>dp(sum+1,-2); int n=arr.size()-1; return solve(arr,sum,dp,n); } }; // yaha tak hi tha mera code //{ Driver Code Starts. int main() { int t; cin>>t; while(t--) { int N, sum; cin >> N; vector<int> arr(N); for(int i = 0; i < N; i++){ cin >> arr[i]; } cin >> sum; Solution ob; cout << ob.isSubsetSum(arr, sum) << endl; } return 0; } // } Driver Code Ends
Editor is loading...
Leave a Comment