➤ Problem Link : NOCHANGE
👉 Hint : Simple 2D DP
✅ C++ Solution :
#include<bits/stdc++.h> using namespace std; int main() { int amt; cin>>amt; int n; cin>>n; int arr[n+1]; arr[0]=0; for(int i=1;i<=n;i++) { cin>>arr[i]; arr[i]+=arr[i-1]; } bool dp[n+1][amt+1]; memset(dp,true,sizeof(dp)); for(int i=0;i<amt+1;i++) dp[0][i]=false; for(int i=1;i<=n;i++) { for(int j=1;j<=amt;j++) { dp[i][j]=dp[i-1][j]; if(arr[i]<=j) dp[i][j]=dp[i][j]||dp[i][j-arr[i]]; } } if(dp[n][amt]==0) cout<<"NO"; else cout<<"YES"; return 0; }
Thank you for your patience reading. If you enjoyed this post, I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Whatsapp or Facebook.
😇Happy Learning!!