Advertisement
Farjana_akter

Untitled

Apr 12th, 2020
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.11 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. typedef long long int ll;
  4.  
  5. ll n,w,product[50];
  6. vector<ll>v1,v2;
  7.  
  8.  
  9.  
  10. void sol1(ll x,ll y,ll sum)
  11. {
  12. if(sum>w)
  13. return;
  14. if(x==y && sum<=w)
  15. {
  16. v1.push_back(sum);
  17. return;
  18. }
  19.  
  20. sol1(x+1,y,product[x]+sum);
  21. sol1(x+1,y,sum);
  22. }
  23.  
  24.  
  25. void sol2(ll x,ll y,ll sum)
  26. {
  27. if(sum>w)
  28. return;
  29. if(x==y && sum<=w)
  30. {
  31. v2.push_back(sum);
  32. return;
  33. }
  34.  
  35. sol2(x+1,y,product[x]+sum);
  36. sol2(x+1,y,sum);
  37. }
  38.  
  39.  
  40.  
  41. int main()
  42. {
  43. ll t,i,j,cas;
  44. cin>>t;
  45. for(cas=1;cas<=t;cas++)
  46. {
  47. cin>>n>>w;
  48. for(i=0;i<n;i++)
  49. cin>>product[i];
  50. v1.clear();
  51. v2.clear();
  52. sol1(0,n/2,0);
  53. sol2(n/2,n,0);
  54. sort(v1.begin(),v1.end());
  55. sort(v2.begin(),v2.end());
  56.  
  57. ll res=0;
  58. for(i=0;i<v1.size();i++)
  59. {
  60. if(w-v1[i]>=0)
  61. res+=(upper_bound(v2.begin(),v2.end(),w-v1[i])-v2.begin());
  62. }
  63. cout<<"Case "<<cas<<": "<<res<<endl;
  64. }
  65. return 0;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement