➤ Problem Link : SUBSUMS
👉 Hint : edit please
✅ C++ Solution :
#include<bits/stdc++.h> using namespace std; #define ll long long int #define pb push_back ll n; void calcSum(vector<ll> arr, vector<ll> &v) { ll m=arr.size(); for(ll i=0;i<pow(2,m);i++) { ll sum=0; for(ll j=0;j<m;j++) if(i & 1<<j) sum+=arr[j]; v.pb(sum); } } int main() { ll a,b; cin>>n>>a>>b; vector<ll> arr,arr2; ll v; for(int i=0;i<n/2;i++) { cin>>v; arr.pb(v); } for(int i=n/2;i<n;i++) { cin>>v; arr2.pb(v); } vector<ll> v1,v2; v2.pb(LONG_MIN); v2.pb(LONG_MAX); calcSum(arr,v1); calcSum(arr2,v2); ll ans=0; sort(v2.begin(),v2.end()); ll mx,mn,q; for(ll val : v1) { mx=b-val; mn=a-val; auto it=upper_bound(v2.begin(),v2.end(),mx); if(it==v2.begin()) continue; it--; auto it2=lower_bound(v2.begin(),v2.end(),mn); it2--; q=it-it2; ans+=q; } cout<<ans; }
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!!